반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준 알고리즘] 백준 1145번 적어도 대부분의 배수 파이썬(Python)

1) 문제번호 : 1145번

 

2) 문제 출처

https://www.acmicpc.net/problem/1145

 

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

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

www.acmicpc.net

 

2. 문제

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

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

 

3. 제약사항

 

 

4. 입력

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

 

5. 출력

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

 

6. 풀이

- 범위는 숫자가 100까지라고 했으니, 1부터 100*100*100까지 범위를 지정하고, 최솟값을 구하는 것이니 리스트에 있는 값으로 3번 떨어지는 순간 그 값이 최솟값이 된다.

- 즉, 예제 소스 코드에서는 30, 35, 42, 70, 90이 있는데, 1부터 1000000까지 반복하면서 30, 35, 42, 70, 90 중 3개로 떨어지면 그 값을 출력하고 종료한다.

 

7. 소스 코드

import sys
input = sys.stdin.readline

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

li.sort() # 오름차순 정렬

for i in range(1, 100*100*100 + 1) :
    cnt = 0
    for j in li :
        if i % j == 0 : # i를 li에 있는 값으로 나눴을 때 나눠 떨어지면
           cnt += 1

        if cnt == 3 : # 적어도 3개로 나눠 떨어지는 순간 최솟값
            print(i)
            exit(0)

 


 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기