728x90
반응형
def change_money(money):
coins = [500, 100, 10, 1] # 동전의 종류 데이터를 가진 리스트. 큰 동전부터 작은 동전 순으로
result_dic = {} # 동전의 수를 가지는 결과 딕셔너리. {'500':1, '100':2..} 와 같은 구조
for coin in coins: # 동전 리스트에서 동전 종류 하나씩 꺼내어 사용
while money >= coin: # 가지고 있는 돈이 동전보다 커야 한다.
if coin in result_dic.keys(): # 동전 종류가 딕셔너리의 키로 있으면
result_dic[coin] += 1 # 수량을 1 증가
else: # 동전 종류가 딕셔너리의 키로 없으면
result_dic[coin] = 1 # 새로운 요소(동전 종류)로 만들고 값은 1로 함
money -= coin # 빠진 동전만큼 돈에서 뺌
return result_dic # 결과 딕셔너리를 동려줌
money = int(input("돈을 입력하세요: ")) # 돈 입력 받기. 문자열이기 때문에 int()로 정수로 변환
result = change_money(money) # 변환 함수 실행하여 결과를 받음
print(f"{money}은 ",end='') # 입력 받은 동 출력. end='' 조건은 출력시 줄바꿈을 하지 않음. 한줄에 결과를 출력하기 위함
for i, (k, v) in enumerate(result.items()): # 딕셔너리의 items()는 키와 값을 돌려 줌. enumerate()는 순서와 값을 받음 수 있음. 여기서는 i는 순서, (k, v)는 딕셔너리의 키와 값이 됨
print(f"{k}원 {v}개",end='') # k는 동전 종류, v는 동전수량이 됨. 줄바꿈을 하지 않음
if i < len(result)-1: # 딕셔너리의 마지막이 아니면 , 를 표시해줌
print(', ',end='')
print() # 마지막 줄바꿈 해줌
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 10명의 6개 점수 입력 받아 평균 구하기 (0) | 2024.05.14 |
---|---|
[파이썬] 문제 : 시험 점수를 학점 주기 (if, elif, else 사용) (0) | 2024.05.13 |
[파이썬] 문제 : 난수 정수의 사칙연산 (0) | 2024.05.12 |
[파이썬] 문제 : 입력한 시간부터 23:59분까지 출력 (for문) (0) | 2024.05.11 |
[파이썬] 문제 : 도서관 책 코드 만들기(for문) (0) | 2024.05.10 |
댓글