1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def solution(lst): max_num = max (lst); print ( "max_num" , max_num) empty_lst = []; for i in range ( 2 , max_num + 1 ): for j in range ( len (lst)): if lst[j] % i = = 0 : if i not in empty_lst: empty_lst.append(i) lst[j] = lst[j] / / i; num = 1 ; for k in (empty_lst + lst): num * = k return num |
의도는 위에 그림과 같았으나 실제론 몇개의 문제는 틀렸다. 왜냐하면 나누는 수가 소수여야하기 때문
이 문제를 푸는 방법중 하나는 모든 리스트 중 2개씩 뽑아서 그들의 약수를 구한 후 그 수와 다음수를 다시 반복 하는 식으로 하면 된다고 한다.
'1일 1문제, 프로그래머스' 카테고리의 다른 글
이제는 1주에 1문제 내지 2문제로... ㅠ_ㅠ (0) | 2018.08.21 |
---|---|
2017 팁스타운, 예상대진표 (0) | 2018.08.15 |
프로그래머스, 레벨3, 야근지수(못품) (0) | 2018.08.02 |
프로그래머스, 레벨3, 가장 긴 펠린드롬 (0) | 2018.07.31 |
프로그래머스, 레벨2) 행렬의 곱셈 (0) | 2018.07.26 |