설탕 N(kg) 배달, 봉지는 3kg짜리와, 5kg 짜리가 있음
최대한 봉지를 적게 가져가는 것은?
단, 정확하게 Nkg을 배달할 수 없으면, -1을 출력
거스름돈 문제와 비슷해 보이지만, 모든 경우의 수를 다 해봐야한다는 차이가 있음.
풀이:
5kg짜리 봉지를 많이 사용하는 순으로 --> 남는 양이 3의 배수인 지 체크하면서 갯수를 저장
ex. N=18 --> 5kg짜리를 3,2,1,0 순으로 사용하고--> 그때 남는 양이 3kg 봉지에 들어갈 수 있는지를 체크
def solve(N):
n = N//5
for i in range(n+1):
temp = N-(n-i)*5
if temp%3==0: return (n-i+temp//3)
return -1
if __name__=='__main__':
N = int(input())
print(solve(N))
'공부하는 것들 > 알고리즘' 카테고리의 다른 글
백준 17224 : APC는 왜 서브태스크 대회가 되었을까?(그리디) (0) | 2021.02.26 |
---|---|
백준 159094 : UCPC는 무엇의 약자일까?(그리디) ** (0) | 2021.02.25 |
백준 2828 : 사과 담기 게임(그리디) ** (0) | 2021.02.25 |
백준 5585 : 거스름돈 (그리디) (0) | 2021.02.24 |
백준 2810 : 컵홀더(그리디)*** (0) | 2021.02.24 |