파이썬 예제 : 거스름돈 계산기
예제를 풀면서 파이썬(Python)을 익혀 보도록 하겠습니다.
생각보다 은근히 어렸원던 문제였습니다.
꼼꼼히 생각해보시고, 차근 차근 풀어보시기 바랍니다.
문제
현명하게 거스름돈을 계산해 주는 프로그램을 만들려고 합니다. 예를 들어 33,000원짜리 물건을 사기 위해 100,000원을 냈다면,
- 50,000원 1장
- 10,000원 1장
- 5,000원 1장
- 1,000원 2장
이런 식으로 '가장 적은 수'의 지폐를 거슬러 주는 것입니다.
방금 같은 경우에는 총 5장을 거슬러 준 거죠.
우리는 calculate_change라는 함수를 작성하려고 하는데요.
이 함수는 지불한 금액을 나타내는 payment와 물건의 가격을 나타내는 cost를 파라미터로 받습니다.
출력 예시
아래의 코드에 이어서 깔끔하게 프로그램을 작성해 보세요.
def calculate_change(payment, cost):
# 코드를 작성하세요.
# 테스트
calculate_change(100000, 33000)
print()
calculate_change(500000, 378000)
함수를 쓰고 프로그램을 실행하면 아래와 같은 결과값이 콘솔에 출력되어야 합니다.
50000원 지폐: 1장
10000원 지폐: 1장
5000원 지폐: 1장
1000원 지폐: 2장
50000원 지폐: 2장
10000원 지폐: 2장
5000원 지폐: 0장
1000원 지폐: 2장
힌트
1. 의미 있는 변수 이름을 사용해 주세요!
- 예를 들어서 5만원, 1만원, 5천원, 1천원을 셀 때는 각각,
- fifty_thousand
- ten_thousand
- five_thousand
- one_thousand
또는
- fifty_count
- ten_count
- five_count
- one_count
이런 식으로 알아보기 쉬운 변수 이름을 사용하는 것이 좋습니다.
그게 왜 중요할까요?
향후 복잡한 프로그램을 짜게 되면 변수를 여기저기서 사용해야 하는데요.
이름이 a, b, c, d처럼 의미 없이 설정되어 있으면, 변수를 활용하기도 어렵고 프로그램의 가독성도 떨어집니다.
특히 다른 개발자와 협업을 할 때 그 문제는 더 심각해집니다.
2. 예를 통해 생각해 보는 것이 가장 좋습니다.
- 물건 가격이 33,000원인데 100,000원을 받았다면, 차액에 해당하는 67,000원을 거슬러 주어야겠죠?
- 67,000원을 거슬러 주려면 50,000원짜리 지폐 1장이 필요합니다.
- 1장이 필요하다는 것은 67000 // 50000을 계산함으로써 구할 수 있습니다.
- 그러면 67000 % 50000인 17000원이 남겠죠?
3. 5만원 지폐 개수를 계산하는 코드만 보여드리겠습니다.
def calculate_change(payment, cost):
change = payment - cost # 거스름돈 총액
fifty_count = change // 50000 # 5만원 지폐
# 답 출력
print("50000원 지폐: {}장".format(fifty_count))
# 테스트
calculate_change(100000, 33000)
print()
calculate_change(500000, 378000)
50000원 지폐: 1장
50000원 지폐: 2장
정답
main.py
def calculate_change(payment, cost):
change = payment - cost
fifty_count = change // 50000
fifty_thousand = change % 50000
ten_count = fifty_thousand // 10000
ten_thousand = fifty_thousand % 10000
five_count = ten_thousand // 5000
five_thousand = ten_thousand % 5000
one_count = five_thousand // 1000
one_thousnd = five_thousand % 1000
print("50000원 지폐: {}장".format(fifty_count))
print("10000원 지폐: {}장".format(ten_count))
print("5000원 지폐: {}장".format(five_count))
print("1000원 지폐: {}장".format(one_count))
# 테스트
calculate_change(100000, 33000)
print()
calculate_change(500000, 378000)
Related References
요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육
'TESTING > PROGREMING' 카테고리의 다른 글
[파이썬 코딩 - Chap.7] 실습 간단한 수학(1) 문제 풀어보기 (0) | 2020.11.04 |
---|---|
[파이썬 코딩 - Chap.6] 실습 간단한 학점 계산기 문제 풀어보기 (0) | 2020.11.04 |
[파이썬 코딩 - Chap.4] 실습 간단한 짝수 홀수 구분하는 문제 풀어보기 (0) | 2020.11.02 |
[파이썬 코딩 - Chap.2] 실습 간단한 커피 레시피 문제 풀어보기 (0) | 2020.11.02 |
[파이썬 코딩 - Chap.1] 실습 간단한 칼로리 계산기 문제 풀어보기 (0) | 2020.10.30 |