Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.0 소인수분해 [Python, 파이썬] 본문
나의 풀이
def solution(n):
answer = []
d = 2
while d <= n:
if n % d == 0:
n = n / d
if d not in answer:
answer.append(d)
else:
d = d + 1
return answer
- n = 12일 때
- 2부터 나누기 시작함으로 d = 2
- while d <= n → n이 d보다 크거나 같을 때 계속 반복 (2 <= 12)
- if n % d == 0 → n을 d로 나눈 나머지가 0이면 n = n / d 실행 (12 % 2 = 0이니까 n = 12 / 2을 해서 n = 6이 된다.)
- if d not in answer → answer 리스트 안에 d(2)가 들어있지 않으면 리스트에 d(2)를 append한다. 같은 수는 넣지 않기 위함
- else → if 문이 False면 d(2)의 값을 1 증가 시킨다. 2 → 3으로
- 끝까지 반복하면 answer = [2, 3]이 된다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 가장 큰 수 [Python, 파이썬] (0) | 2023.02.16 |
---|---|
[프로그래머스] Lv.1 K번째 수 [Python, 파이썬] (0) | 2023.02.16 |
[프로그래머스] Lv.0 공 던지기 [Python, 파이썬] (0) | 2022.12.27 |
[프로그래머스] Lv.0 숨어있는 숫자의 덧셈 (2) [Python, 파이썬] (0) | 2022.12.27 |
[프로그래머스] Lv.0 가까운 수 [Python, 파이썬] (0) | 2022.12.22 |
Comments