Programmers_LV0_소인수구하기

jkky98·2023년 2월 1일
0

CodingTraining

목록 보기
4/61

def divide_close(num):
    for i in range(2,num+1):
        if num % i == 0:
            return i, num//i

def solution(n):
    count = n
    ans_list = []
    while count != 1:
        i, count = divide_close(count)
        ans_list.append(i)
    
    ans_list = set(ans_list)
    ans_list = list(ans_list)
    ans_list.sort()
    return ans_list

divide_close함수를 통해 2부터 시작하여 가장 가깝게 나누어 떨어질 수 있는 수와 무엇으로 나누었는지 두가지를 리턴하게 하여, i는 리스트에 append하고, 몫은 업데이트시켜 1이 될때까지 while문을 통해 돌렸다.

그리고 리스트에는 중복이 가능하므로, 집합으로 자료형을 바꾸었다가 리스트로 다시 바꾸어 정렬하여 최종 answer 리턴하였다.

profile
자바집사의 거북이 수련법

0개의 댓글