def solution(arr):
total = 1
max_num = -1
for num in arr:
total *= num
if num > max_num:
max_num = num
tmp = max_num
answer = tmp
while tmp <= total:
for num in arr:
if tmp % num == 0 :
continue
tmp += max_num
break
else:
answer = tmp
return answer
return answe
제일 큰 숫자에서 계속 더해가는 식으로 풀었다.
처음에는 리스트 안에 있는 애들을 다 곱해주고, 제일 큰 숫자를 하나씩 빼가는 식으로 풀었다. 그런데 시간이 너무 걸린다.
솔직히 전부 다 곱하는 건 제일 최악의 경우를 상정한 거기도 하다. 게다가 다 곱한 게 최소공배수일 확률은 적어서 그냥 큰 수부터 더해가는 걸로 바꿨다.
'조열심 카테고리 > 알고리즘' 카테고리의 다른 글
| [프로그래머스] 베스트앨범 (0) | 2022.09.24 |
|---|---|
| [공부] 인공지능을 위한 알고리즘과 자료구조: 이론, 코딩, 그리고 컴퓨팅 사고 4주차 (1) | 2022.09.20 |
| [프로그래머스] 구명보트 (0) | 2022.09.19 |
| [공부] 인공지능을 위한 알고리즘과 자료구조: 이론, 코딩, 그리고 컴퓨팅 사고 3주차 (0) | 2022.09.15 |
| [백준] 5430 (0) | 2022.09.11 |