그리디 : 거스름돈 [ 이것이 코딩테스트다 ] [ Python ]
2023. 4. 18. 23:40ㆍ알고리즘/이것이 코딩테스트다
문제
당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원,
50원, 10원짜리 동전이 무한히 존재한다고 가정한다.
손님에게 거슬러 줘야 할 돈이 N 원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라.
단, 거슬러 줘야 할 돈 N 은 항상 10의 배수이다.
tip) 가장 큰 화폐 단위부터 돈을 거슬러준다.
나의 코드
n = 1260
money = [ 500, 100, 50, 10]
result = 0
for i in money:
result = result + (n // i) # 500원 먼저 최대로 넣음 첫 루프때 n 은 1260 i 는 500 나눈값인 2를 result 에 넣는다.
n = n % i
# 왼쪽 변수에 오른쪽 값을 나눈후 그 나머지를 할당한다. 첫 루프때 n 은 1260 i 는 500 이므로 나머지하고 남은 값을
# 260 을 넣어준다.
print(result);
저자 코드
n = 1260
count = 0
# 큰 단위의 화폐부터 차례대로 확인하기
coin_types = [500, 100, 50, 10]
for coin in coin_types:
count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기
n %= coin
print(count)
회고
본문제가아니라 설명인 문제이지만 비슷하게 풀었다는 것이 좋았다. 설명이 좋았어서 그랬을지도..
%= 같은 산술연산자를 활용할 생각을 못한것이 아쉽다. 이 산술연산자는 떠오르지도 않았음
자주 활용해 봐야겠숨
'알고리즘 > 이것이 코딩테스트다' 카테고리의 다른 글
구현 : 왕실의 나이트 [ 이것이 코딩테스트다 ] [ Python ] (0) | 2023.05.18 |
---|---|
구현 : 시각 [ 이것이 코딩테스트다 ] [ Python ] (0) | 2023.05.18 |
구현 : 상하좌우 [ 이것이 코딩테스트다 ] [ Python ] (2) | 2023.05.08 |
그리디 : 숫자 카드 게임 [ 이것이 코딩테스트다 ] [ Python ] (0) | 2023.04.19 |
그리디 : 큰 수의 법칙 [ 이것이 코딩테스트다 ] [ Python ] (0) | 2023.04.18 |