본문 바로가기

코딩테스트/BOJ

[백준/파이썬] 1145번: 적어도 대부분의 배수 (Python)

문제

www.acmicpc.net/problem/1145

 

1145번: 적어도 대부분의 배수

첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다.

www.acmicpc.net

풀이

 - 브루트포스 알고리즘

 

 - 처음 무슨 문제인지 이해를 못했다. 주어진 다섯 개의 자연수 중 최소 3개로 나누어 떨어지는 숫자 중 최소값을 구하는 문제이다.

 

 - 210은 30의 배수, 42의 배수, 70의 배수이다.

 

 - 1부터 시작 할 필요없이 5개의 숫자중에서 가장 작은 숫자부터 1씩 증가시켜, 주어진 다섯 개의 수로 나누어 떨어지면 cnt를 증가시켜준다

 

 - cnt가 3이상이되면 해당 숫자가 정답이 된다.

코드

arr = list(map(int, input().split()))

minNum = min(arr)
cnt = 0
while True:
    cnt = 0
    for i in range(len(arr)):
        if minNum % arr[i] == 0 :
            cnt += 1
    if cnt >= 3:
        print(minNum)
        break
    minNum += 1