본문 바로가기

카테고리 없음

파이썬 Dictionary 딕셔너리 활용 : 지폐 동전 거스름돈 계산

파이썬의 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 딕셔너리에는 계산후 값을 담기위해서 선언한 것일뿐이라 초기값은 아무것도 넣지 않았다. 

 

 

 

이제 본문이다. 

딕셔너리-for문-활용

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}개")

 

 

 

 

 

파이썬 설치는 어떻게? 뭐 무설치로도 할 수 있다고?

 

파이썬으로 소수 구하기 

 

파이썬 : 소수 구하기, 한글로 설명하기 더 어려우니 예제를 보자.

소수란? 1 이외의 정수 & 자신의 수 이외의 수로는 나누어 떨어지지 않는 값. 양의약수가 단 2개인 수. 한글로 설명하기가 더 어렵다. 예제를 보자 한자리수 소수란 예를들면. 2, 3, 5, 7. 3은 소수다.

welcomec.tistory.com

 

 

 

파이썬-딕셔너리-활용-거스름돈-썸네일