Programmers
-
정수 제곱근 판별Programmers 2023. 3. 19. 16:05
문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예 설명 입출력 예#1121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#23은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 나의 풀이 def solution(n): if int(n**0.5) == n**0.5: return (n**0.5 + 1)**2 else: return -1
-
문자열에서 p와 y의 개수Programmers 2023. 3. 19. 16:05
문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 s answer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니..
-
자연수 뒤집어 배열 만들기Programmers 2023. 3. 19. 16:03
문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] 나의 풀이 def solution(n): arr = list(str(n)) arr.reverse() return [int(i) for i in arr] 다른 사람의 풀이 def digit_reverse(n): return list(map(int, reversed(str(n)))) map 함수를 사용해서 한 줄로 구현했다 reversed 함수는 reverse 메서드와 동일한 역할을 한다
-
약수의 합Programmers 2023. 3. 19. 16:03
문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #112의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #25의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 나의 풀이 def solution(n): answer = 0 for i in range(1, n+1): if n%i == 0: answer += i return answer 다른 사람의 풀이 def sumDivisor(num): # num / 2 의 수들만 검사하면 성능 약 2배 향상잼 return num + sum([i..
-
자릿수 더하기Programmers 2023. 3. 19. 16:02
문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 입출력 예 설명 입출력 예 #1문제의 예시와 같습니다. 입출력 예 #29 + 8 + 7 = 24이므로 24를 return 하면 됩니다. 나의 풀이 def solution(n): n = list(str(n)) return sum([int(i) for i in n]) 다른 사람의 풀이 def sum_digit(number): '''number의 각 자릿수를 더해서 return하세요''' if number..