백준 알고리즘 3733번
백준 알고리즘 3733번 Shares
문제
N명의 그룹과 ACM 수석 판사는 동일한 수의 S 주식을 공유합니다(전부를 가질 필요는 없음). 각 사람이 취득한 주식의 수를 x라고 합니다(x는 정수여야 합니다). 문제는 x의 최대값을 계산하는 것입니다.
입력 텍스트 파일에서 정수 숫자 쌍을 읽는 프로그램을 작성합니다. 각 쌍은 1 <= N <= 10000, 1 <= S <= 109의 값을 순서대로 포함합니다. 입력 데이터는 공백으로 자유롭게 구분되고 정확하며 파일 끝으로 종료됩니다. 각 숫자 쌍에 대해 프로그램은 아래 예와 같이 x의 최대값을 계산하고 해당 값을 한 줄의 시작부터 표준 출력에 인쇄합니다.
예제
입력 | 출력 |
---|---|
1 100 2 7 10 9 10 10 | 50 2 0 0 |
풀이
result = []
while True:
try:
n, s = map(int, input().split())
result.append(s // (n+1))
except:
for x in result:
print(x)
break
- x 값을 받아줄 리스트
result
를 선언한다. while
반복문을 사용해서 사용자로부터 계속해서 입력을 받는다.try
블록 내에서는 사용자로부터n
과s
두 개의 정수를 입력받는다.n
명의 사람과 ACM 숫거 심판이 주식S
개를 공평하게 나눠 갖도록 최대값x
를 구해야 한다.- 주식
S
개를n+1
(n 명의 사람 + ACM 수석 심판)명이 공평하게 나눠 가져야 하므로,S
를n+1
로 나눈 정수 몫이 우리가 원하는 최대값x
가 된다.
- 주식