"적어도 대부분의 배수" 가 뭔 말인가 했는데 세 수 이상에게 배수이면 된다는 뜻이다.
처음에 내가 생각했던 방법: 다섯 수 돌아가면서 배수를 전부 리스트에 담기. 리스트 안에 같은 수가 3개 중복되면, 배수가 세번 겹쳤다는 것이므로 그것을 출력하기.
이렇게 해도 답은 제대로 나오지만, 시간 초과가 났다.
근데 저렇게 할 필요가 없었다. 쉬운 방법이 있었다.
그냥 while문으로 1부터 돌려서, 다섯 수 중에 배수 세번 만족하면, 그걸 출력하면 된다.
1부터 돌리면 효율이 떨어지니까 다섯 수 중에 가장 작은 수부터 돌리거나, 세번째 수부터 돌리면 된다.
CODE
num_list = list( map(int, input().split())) # 입력
num_list.sort() # 작은 수 부터 시작하도록 정렬
i = num_list[2] # 비교 초기값 : 3번째 수 (세 수의 배수를 구하는 것이므로)
while True:
count = 0
for num in num_list:
if i % num == 0:
count += 1 # i가 num의 배수이면 카운트.
# 3번 중복되면 "적어도 대부분의 배수" 조건을 만족하게 된다.
if count >= 3:
print(i) # 출력
break
i += 1