728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
"""
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다.
예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다.
따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때
n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
"""
def solution(n):
result = []
divide_num = 2
while n!=1:
if n%divide_num == 0:
n/= divide_num
result.append(divide_num)
else:
divide_num += 1
return sorted(set(result))
"""
나눠서 0이 되면 약수이기 때문에 저장한다는 생각으로 코드를 짰다.
약수라면 result에 추가하고 n을 divide_num으로 나누었다.
4라고 가정한다면 2로 한번 나누어도 2이기 때문에
더이상 divide_num으로 나누어지지 않을때까지 반복해야 한다.
약수가 아니라면 다음수로 증가시켜주었다.
17이라면 divide_num이 계속 else로 들어가서 증가하다가
17에 if문에 들어가서 나누면 n이 1이 되어 while문을 빠져나온다.
다 계산하고 중복된 값을 빼고 오름차순으로 리턴해줘야 한다.
set함수로 중복을 지우고 sorted로 소트해주어 리턴해줬다.
"""728x90
반응형
'개발 > 문제풀이' 카테고리의 다른 글
| 프로그래머스 '등수 매기기' 파이썬 풀이 (0) | 2023.02.18 |
|---|---|
| 프로그래머스 '안전지대' 파이썬 풀이 (0) | 2023.02.16 |
| 프로그래머스 '특이한 정렬' 파이썬 풀이 (0) | 2023.02.16 |
| 프로그래머스 '최빈값 구하기' 파이썬 풀이 (0) | 2023.02.16 |
| 프로그래머스 '저주의 숫자 3' 파이썬 풀이 (0) | 2023.02.16 |
댓글