본문 바로가기

[백준 문제 해설]/[백준 문제 해설] - Bronze 4

[백준 - Python] 5532번 - 방학 숙제

728x90

문제 링크

5532번 - 방학 숙제

 

5532번: 방학 숙제

한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다.

www.acmicpc.net

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import math
 
= int(input())
= int(input())
= int(input())
= int(input())
= int(input())
 
d1 = math.ceil(A / C)
d2 = math.ceil(B / D)
 
if L - d1 >= L - d2:
    print(L - d2)
else:
    print(L - d1)
cs

변수가 많지만 문제를 잘 읽으면 쉽게 풀 수 있습니다.

'수학 숙제의 총 페이지'를 '하루에 풀 수 있는 최대 수학 페이지'로 나누면 며칠이 걸리는지 알 수 있습니다.(국어도 똑같음)

근데 만약 숙제를 다 하는데 14.3일이 걸린다면 이건 15일이 걸리는 것으로 간주해야 합니다.

따라서 math라이브러리의 ceil을 사용하여 실수를 올림해주도록 하겠습니다.

 

그럼 이제 수학숙제를 하는데 걸리는 날짜와 국어숙제를 하는데 걸리는 날짜가 각각 구해집니다.

여기서 구해야하는 것은 숙제를 하지 않고 놀 수 있는 최대 날짜를 구해야하기 때문에 

국어 숙제와 수학숙제 중 오래걸리는 날짜를 방학날짜에서 빼야합니다.

728x90