프로그래밍/백준

[알고리즘] 백준(baekjoon) 1145번 파이썬

매 석 2022. 9. 29. 16:18
반응형

 

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

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

www.acmicpc.net

적어도 대부분의 배수

시간 제한메모리 제한제출정답맞힌 사람정답 비율

 

2 초 128 MB 7554 4434 3852 59.481%

 

문제

다섯 개의 자연수가 있다. 이 수의 적어도 대부분의 배수는 위의 수 중 적어도 세 개로 나누어 지는 가장 작은 자연수이다.

서로 다른 다섯 개의 자연수가 주어질 때, 적어도 대부분의 배수를 출력하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 적어도 대부분의 배수를 출력한다.


예제 입력 1 

30 42 70 35 90

예제 출력 1 

210

예제 입력 2 

1 2 3 4 5

예제 출력 2 

4

예제 입력 3 

30 45 23 26 56

예제 출력 3 

1170

예제 입력 4 

3 14 15 92 65

예제 출력 4 

195

 


 문제 풀이

#5개의 숫자를 리스트에 저장 후 정렬
a = list(map(int,input().split()))
a.sort()
#찾을값 =f
f=1
#카운팅 횟수
cnt=0
#brute force start
while True:
    cnt=0
    #f 값을 a 값으로 나눈 나머지가 0일 때 cnt +1
    for i in range(0,len(a)):
        if(f%a[i]==0):
            cnt+=1
            #3이면 for문 나감
            if(cnt==3):
                break
    #이후 f를 출력 후 while문 종료
    if(cnt==3):
        print(f)
        break
    f+=1

 

1. 5개의 숫자를 입력받아 a에 저장 후 정렬

2. 만족하는 f값을 찾을 때 까지 무한으로 증가 

3. f값이 a값으로 나눈 나머지가 0인 개수가 3개일 때 정지

4. 만족하는 f값 출력