N개의 연필을 사려고 할 때, X세트는 A개에 B엔, Y세트는 C개에 D엔이다. 단, X세트를 사게되면 Y세트를 살 수없고, Y세트를 사게되면 X세트는 구매할 수 없다.
이때 ,JOI군이 N자루 이상 연필을 사려고할 때 필요한 금액의 최소치를 구하는 문제이다.
소스코드는 다음과 같다.
import math
n,a,b,c,d = map(int, input().split())
print(min(math.ceil(n/a)*b, math.ceil(n/c)*d))
만약 n를 a로 나누었을 경우 n/a개의 세트를 세트당 b엔으로 구입하면된다.
하지만 n를 a로 나누어지지 않을 경우 한 개의 세트를 더 구입해야 한다. 나눠지지 않는다는 것은 n/a 했을 때 소수점이 발생하므로 math.ceil(n/a)를 이용한다.
math.ceil(3.1) = 4, math.ceil(3.0) = 3 이므로 나누어지지 않을 때 한 개의 세트를 더 구입하는 상황을 처리할 수 있다.
마지막으로 x세트를 구입했을 때와 y세트를 구입했을 때를 비교하여 그 최솟값을 출력한다.
'컴퓨터 > BOJ' 카테고리의 다른 글
[BOJ](Phython) 1292번 : 쉽게 푸는 문제 (0) | 2021.01.25 |
---|---|
[BOJ](Phython) 1874번 : 스택 수열 (0) | 2021.01.25 |
[BOJ](Python) 15128번 : Congruent Numbers / 부동소수점 오차 (0) | 2020.09.06 |
[BOJ](Python) 10820번 : 문자열 분석 / EOF를 설정하는 방법 (0) | 2020.09.05 |
[BOJ](Python) 8320번 : 직사각형을 만드는 방법 (0) | 2020.08.30 |