파이썬

    [프로그래머스/파이썬] 하샤드 수

    문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수 입니다. 자연수 x를 입력받아 x가 하샤드 수 인지 아닌지 검사하는 함수, solution을 완성해주세요 제한 조건 x는 1이상, 10000 이하인 정수 입출력 예 arr return 10 true 12 true 11 false 13 false 내 풀이 map을 통해 양의 정수 x를 문자열로 바꾸어 각 요소를 int 타입으로 변환 sum을 통해 리스트 요소 값을 합함 x를 자릿수 합(digit_sum)으로 나눈 나머지가 0이면 True, 아니면 False 반환 def solution(x): digit_sum = sum(ma..

    [프로그래머스/파이썬] 문자열 내 p와 y의 개수

    문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution을 완성하세요. 제한 사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어짐 입출력 예 s answer "pPoooyY" true "Pyy" false 내 풀이 문자열 s를 lower() 를 통해 모두 소문자로 변경 count()를 통해 "p"와 "y"의 개수가 일치하면 True 반환, 일치하지 않으면 False 반환 'p', 'y'가 하나도 없는 경우는 0 == 0 이므로 True 반환 def solution(s): s = s.lower() return True if s.count('p') == s.co..

    [프로그래머스/파이썬] 자연수 뒤집어 배열로 만들기

    문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 제한 조건 n은 10,000,000,000이하인 자연수 입출력 예 n return 12345 [5,4,3,2,1] 내 풀이 자연수 n을 문자열로 바꿔 증가폭을 -1로 설정 리스트 전체에서 인덱스를 1씩 감소시키면서 요소를 가져와 int로 변환하여 list 생성 def solution(n): list1 = [int(i) for i in str(n)[::-1]] return list1 다른 사람 풀이 자연수 n을 문자열로 만들고 reversed를 사용하여 뒤집음 map을 통해 각 요소를 int 타입으로 변환하여 list 생성 def digit_reverse(n): return list(map(int, reversed(st..

    [프로그래머스/파이썬] 정수 제곱근 판별

    문제 설명 임의의 양의 정수에 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 입출력 예 n return 121 144 3 -1 내 풀이 math를 import하지 않고 제곱근을 얻는 방식을 몰라 다른 분들의 풀이를 참고함 def solution(n): x = n ** (0.5) if x % 1 == 0 : return (x+1)**2 return -1 정수에 0.5 제곱을 곱하면 해당 정수의 제곱근을 얻을 수 있음 x % 1 == 0 이 참이면 x는 정수라는 뜻

    [프로그래머스/파이썬] 평균 구하기

    문제 설명 정수를 담고 있는 배열 arr의 평균값을 return 하는 함수, solution을 완성해보세요. 제한 사항 arr은 길이 1이상, 100이하인 배열 arr의 원소는 -10,000 이상 10,000 이하인 정수 입출력 예 arr return [1,2,3,4] 2.5 [5,5] 5 내 풀이 sum을 통해 배열의 합을 구하고 len을 통해 배열의 길이를 구해 나누기 def solution(arr): return sum(arr)/len(arr)

    [프로그래머스/파이썬] 약수의 합

    문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수 입출력 예 n return 12 28 5 6 내 풀이 0부터 정수 n 까지 반복하여 n을 i로 나눈 나머지가 0과 같은 (약수) list1 생성 sum을 통해 합한 값 return def solution(n): list1 = [i for i in range(1,n+1) if n % i == 0] return sum(list1) 다른 사람 풀이 절반만 검사하여 성능 향상 1부터 num을 2로 나눈 값+1 까지 반복하며 num을 i로 나눈 값이 0과 같은(약수) 리스트 생성하여 sum 약수는 정수 자신을 포함하므로 sum값에 정수 num 값을 합함 def s..

    [프로그래머스/파이썬] 자릿수 더하기

    문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 제한사항 N의 범위: 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 내 풀이 int 타입 정수 n을 문자열로 변경하고 for문을 통해 각 문자를 int 로 변환하여 sum에 누적 def solution(n): sum=0 for i in str(n): sum+=int(i) return sum 다른 사람 풀이 정수 number를 문자열로 바꾸고 각 인덱스를 int 타입으로 변환 후 sum 을 통해 합함 def sum_digit(number): '''number의 각 자릿수를 더해서 return하세요''' return sum(map(int,str(nu..