파이썬의 Dictionary는 사전이라는 의미이다. 이것을 이용해서 지폐몇장, 거스름돈 얼마 계산해보자.
일단 input 을 받아서 money 변수에 저장한다.
money=int(input('금액을 입력하세요:'))
money(입력한값 예를들어 362 라고 하겠다.)
cash 라는 리스트를 만드는데, 여기에는 단위가 들어간다. 무슨말이냐면 예제는 $기준으로 할건데. 달러는 100$, 50$, 20$, 10$, 5$, 1$ 이렇게 나뉘어져있다. 100$ 이상 달러도 있나? 흠.. 뭐 잘모르겠지만 있다면 그 앞에 추가해주면 된다.
cash = [100,50,20,10,5,1]
cnt ={}
#리스트는 []
#딕셔너리는 {}
아래 cnt는 지폐별로 몇장씩 필요한가를 딕셔너리로 저장하기 위해 dictionary 선언을 해준다.
선언시에
#리스트는 [] 대괄호
#딕셔너리는 {} 중괄호
이렇게 선언한다.
cash 리스트에는 미리 값을 설정해주기 위해 선언과 동시에 초기화 해줬다. cnt 딕셔너리에는 계산후 값을 담기위해서 선언한 것일뿐이라 초기값은 아무것도 넣지 않았다.
이제 본문이다.
1.
cash 리스트를 for문 돌면서 하나씩 가져와서 c 에 넣는다. 리스트에 초기화 해둔 [100,50,20,10,5,1] 순서대로 하나씩 c 에 들어가고 아래 문장을 실행한다.
처음 실행이므로 리스트의 첫번째 값 100이 c에 대입된다.
2.
howmuch = money(362) // c(100)
// 는 파이썬에서 몫을 구하는 연산자 이다. 362를 100으로 나눈 몫은 =3 . 즉 100$짜리 3장이라는 말이다.
3.
cnt[c]=howmuch # 단위별 몇개인지 딕셔너리에 추가
은 cnt[ 100 ] = 3 이라고 볼 수 있다.
cnt 딕셔너리에 100 이라는 키와, 3의 value 가 들어간것이다.
4.
입력한값 money(362) 에서 100$ x 3 (100$짜리 지폐 3장) 을 뺀값을 대입해준다. 이제 money 는 62가 된다.
for문에 의해 다시 1번줄로 돌아간다. 이때 c에는 [100,50,20,10,5,1]이 들어간다. c에 50이 대입된채로 2번줄부터 다시 반복이다.
이렇게 쭉 계산하면 그 결과가 cnt 딕셔너리에 { 지폐 단위 : 몇장, } 이런식의 데이터가 쭈루룩 모인다.
for k,v in cnt.items(): #여기에 데이터가 모임
print( f"{k}$ {v}장")
이렇게 dictionary.items()의 데이터(key,value)를 for문돌면서 가져올 수 있다. 이제 print 만 하면 끝이다. print의 결과는 아래와 같다.
짜잔. 이렇게 입력받은 달러를 달러 단위 별로 나눠서 출력해준다. 음식점 이나 식당, 편의점,백화점 등등 계산대에서 현금으로 받거나 할때 이용 할 수 있겠지? (요샌 다 신용카드긴 하지만.. ㅋㅋ ㅠ )
Full Code
money=int(input('금액을 입력하세요:'))
cash = [100,50,20,10,5,1]
cnt ={}
for c in cash:
howmuch = money // c
cnt[c]=howmuch # 단위별 몇개인지 딕셔너리에 추가
money -= (howmuch*c)
for k,v in cnt.items(): #여기에 데이터가 모임
print( f"{k}짜리 {v}장")
우리나라는 \ 단위인데? 그럼 어디를 바꿔야 할까? 한줄만 바꾸면 될거 같긴한데?ㅋㅋ 고민해보자.
답은 아래에 있다...
대신 답을 먼저 보기전에 꼭 고민하고 생각해서 먼저 프로그래밍 해보자. 그게 다 당신의 능력과 실력을 기르는데 도움이 된다. 답만 보고 복붙하는건 실력향상에 그리 큰 도움이 되지 않는다 .
꼭 스스로 코딩 해보도록 하자!!
# \ 나누기.
money =int(input('금액을 입력하세요:'))
cash = [50000,10000,5000,1000,100,50,10]
cnt ={}
for c in cash:
howmuch = money // c
cnt[c]=howmuch
money -= (howmuch*c)
for k,v in cnt.items(): #여기에 데이터가 모임
print( f"{k}\짜리 {v}개")