import sys
from math import ceil
def input():
return sys.stdin.readline().rstrip()
N,AC,AP,BC,BP = map(int,input().split())
if AP*BC < BP*AC:
AC,AP,BC,BP = BC,BP,AC,AP
answer = float('inf')
for A_COUNT in range(BC):
B_COUNT = ceil((N-A_COUNT*AC)/BC)
isover = False
if B_COUNT<0:
B_COUNT = 0
isover = True
answer = min(answer, A_COUNT*AP + B_COUNT*BP)
if isover:
break
print(answer)
헷갈려서 어려웠던 문제
최소공배수를 이용해서 풀어야하는 문제이다.
가성비가 좋은 것을 B로 시작하는것을 두고
가성비가 안 좋은 것을 A라고 햇을시,
AB개만큼 구매를 한다고 했을시에는 무조건 B를 A개 사는것이 이득이다.
즉 이말은 A를 B개 미만으로 사는것이 장미를 최소한의 값으로 구매하는것임을 인지하고,
A묶음의 장미를 B번 사는 것 미만으로 샀을때
장미의 값을 계산을 해주면 되는 문제이다.
문제를 풀때 a,b가 헷갈려서 너무 어려웠던 문제였다. 조심해서 풀자.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 2695 공 (0) | 2022.06.21 |
---|---|
[BOJ/백준] 16890 창업 (0) | 2022.05.11 |
[BOJ/백준] 19566 수열의 구간 평균 (0) | 2022.01.15 |
[BOJ/백준] 12912 트리 수정 (0) | 2021.12.23 |
[BOJ/백준] 2240 자두나무 (0) | 2021.12.04 |