나의 개발일지

[프로그래머스] Lv.0 소인수분해 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.0 소인수분해 [Python, 파이썬]

YoonJuHan 2022. 12. 29. 19:19
나의 풀이
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일 때
  1. 2부터 나누기 시작함으로 d = 2
  2. while d <= n → n이 d보다 크거나 같을 때 계속 반복 (2 <= 12)
  3. if n % d == 0 → n을 d로 나눈 나머지가 0이면 n = n / d 실행 (12 % 2 = 0이니까 n = 12 / 2을 해서 n = 6이 된다.)
  4. if d not in answer → answer 리스트 안에 d(2)가 들어있지 않으면 리스트에 d(2)를 append한다. 같은 수는 넣지 않기 위함
  5. else → if 문이 False면 d(2)의 값을 1 증가 시킨다. 2 → 3으로
  6. 끝까지 반복하면 answer = [2, 3]이 된다.
Comments