목록Coding test(Python3)/스터디 (47)
NIRVANA
문제임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.제한 사항n은 1이상, 50000000000000 이하인 양의 정수입니다. 문제 풀이 접근법11) n에 0.5(1/2)를 제곱하여 루트값을 구한다.2) n과 n**0.5를 나누었을 때, 나머지가 0이라면 n**0.5에 +1한 값의 제곱을 반환하고, 아니라면 -1을 반환한다. def solution(n): answer = 0 if n % n**0.5 == 0: answer = (n**0.5+1)**2 else: answer = -1 ..
문제함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 문제 풀이 접근법11) n을 문자열로 변경한 뒤, 리스트로 변경하여 sort한다.2) sorting된 리스트를 reversed함수를 사용하여 뒤집은 후, join함수를 사용해 다시 문자열로 합친다.3) 합쳐진 문자열을 다시 정수형으로 변경한다. def solution(n): answer = 0 arr = ''.join(reversed(sorted([i for i in str(n)]))) answer = int(arr) return answer 다른 분들 문제 풀이def ..
문제자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건n은 10,000,000,000이하인 자연수입니다. 문제 풀이 접근법1def solution(n): answer = [] for i in str(n): answer.append(i) return list(map(int, reversed(answer)))
문제자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.제한사항N의 범위 : 100,000,000 이하의 자연수 문제 풀이 접근법11) 자연수 N을 문자열로 변경한 뒤, for문을 문자열의 각 원소를 가지고 온다.2) 문자열의 원소를 다시 자연수로 변경하고, 그 값을 answer에 더한다.3) answer를 반환한다. def solution(n): answer = 0 for i in str(n): answer += int(i) return answer 다른 분들 문제 풀이 def sum_digit(number): '''number의 각..
문제세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다.정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다.문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다.모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다.모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다.모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다.모든 괄호들의 짝은 1:1 매칭만 가능하다. 즉, 괄호 하나가 둘 이상의 괄호와 짝지어지지 않는다.짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균..
문제괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열이..