일단 가장 먼저 성공했던 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
days = int(input())
korean =  int(input())
maths =  int(input())
maxKorean =  int(input())
maxMaths =  int(input())
if korean % maxKorean != 0:
    koreanDays = korean // maxKorean + 1
else:
    koreanDays = korean // maxKorean
if maths % maxMaths != 0:
    mathsDays = maths // maxMaths + 1
else:
    mathsDays = maths // maxMaths
maxDays = max(koreanDays, mathsDays)
print(days - maxDays)
 
cs

if-else문을 통해서 나머지가 있고 없고에 따라서 처리를 한다.


그런데 이 방법보다 훨씬 쉬운 방법은 math 모듈을 import 해서 ceil() 함수를 사용하는 것이다.

다음과 같은 코드를 사용하면 된다.

1
2
3
4
5
6
7
8
9
10
import math
= int(input())
= int(input())
= int(input())
= int(input())
= int(input())
= math.ceil(A / C)
= math.ceil(B / D)
free = max(k, m)
print(L - free)
cs

 

 

문제 출처: https://www.acmicpc.net/problem/5532

 

5532번: 방학 숙제

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

www.acmicpc.net

 

+ Recent posts