320x100
챕터3 그리디에서 알고리즘을 풀어야하는 파트는 4부분으로 나뉜다.
1.거스름돈
2.큰 수의 법칙
3.숫자 카드 게임
4.1이 될때까지
그 중에서 시간 및 체력관계상 오늘은 거스름돈 알고리즘만 풀어보고 나머지는 푸는대로 올려볼 계획이다.
# 나의 코드
def exchange(n):
exchange500Cnt = 0
exchange100Cnt = 0
exchange50Cnt = 0
exchange10Cnt = 0
while n > 10:
total = n
if n >=500:
exchange500Cnt += n//500
total = n % 500
if n >= 100:
exchange100Cnt += total //100
total %= 100
if n >= 50:
exchange50Cnt += total // 50
total %= 50
if n>= 10:
exchange10Cnt += total // 10
total %= 10
result = (f'{n}원에 대한 거스름돈: 500원: {exchange500Cnt}개, 100원:{exchange100Cnt}개, '
f'50원:{exchange50Cnt}개, 10원: {exchange10Cnt}개. 나머지: {total}원')
break
return result
x = int(input('잔돈으로 변경 원하는 금액은?: '))
print(exchange(x))
# 해답코드
n = 1260
count = 0
# 큰 단위의 화폐부터 차례대로 확인
coin_types = [500,100,50,10]
for coin in coin_types:
count += n //coin
n %= coin
print(count)
# 정말 간단하다.
# 단순히 거슬러줘야하는 동전의 갯수를 구하는 측면에서는 좋은 코드라고 볼 수 있다.
# 하지만 더 나아가서 어느 동전을 몇개를 거슬러 줘야하는지, 그 거스름의 총액은 얼마인지 구하는
# 간단한 수식은 어떨지가 너무 궁금하다.
300x250
'개발일지 > Python' 카테고리의 다른 글
파이썬 선형검색으로 내가 찾는 숫자가 난수리스트에 있는지 확인하는 알고리즘 (0) | 2022.05.19 |
---|---|
Day2. 챕터3 그리디 - 큰 수의 법칙 (0) | 2022.05.18 |
Day1 Part 01의 chapter 01, 02 후기 (0) | 2022.05.16 |
[복기] 파이썬 이중 딕셔너리 이용 코드 (0) | 2022.05.12 |
[복기] 파이썬 딕셔너리 키값에 해당하는 용어가 다른 리스트에 있다면 키값에 해당하는 벨류값으로 대체해주기 (0) | 2022.05.12 |