일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- word2vec
- overfitting
- Attention
- abstraction
- sentence embedding
- Self-loop attention
- machine learning
- Python
- GNN
- NLP
- sigmoid
- Set Transformer
- Transformer
- deep learning
- elif
- pytorch
- neural net
- Classificaion
- XOR
- python practice
- Today
- Total
Research Notes
[Python Practice] Make Change Calculator using Python 본문
[Python Practice] Make Change Calculator using Python
jiachoi 2023. 7. 3. 16:18<Question>
# 거스름돈 계산기
# 현명하게 거스름돈을 계산해주는 프로그램을 만드려고 합니다.
# 예를 들어 33,000원짜리 물건을 사기 위해 100,000원을 냈다면,
# 50,000원 1장, 10,000원 1장, 5,000원 1장, 1,000원 2장과 같이 '가장 적은 수'의 지폐를 거슬러 주는 방식입니다.
# payment(지불한 금액)와 cost(가격)라는 파라미터 두개를 필요로 하는 함수 calculate_change를 쓰세요.
# 이 함수는 거스름돈을 위해 50,000원짜리와 10,000원짜리, 5,000원짜리, 1,000원짜리가 각각 몇 장 필요한지 출력해주는 역할을 합니다.
# payment, cost 파라미터의 값은 1,000의 배수라고 가정합시다.
출력은
50000원 짜리 지폐 : 1장
10000원 짜리 지폐 : 1장
5000원 짜리 지폐 : 1장
1000원 짜리 지폐 : 2장
와 같은 형식으로 하세요.
<Answer>
def calculate_change(payment, cost) :
remain = payment - cost
fifty_thousand = remain // 50000
ten_thousand = (remain % 50000) // 10000
five_thousand = ((remain % 50000)%10000) // 5000
one_thousand = (((remain % 50000)%10000) % 5000 ) //1000
print("50000원 짜리 지폐 : %d장" %(fifty_thousand))
print("10000원 짜리 지폐 : %d장" % (ten_thousand))
print("5000원 짜리 지폐 : %d장" % (five_thousand))
print("1000원 짜리 지폐 : %d장" % (one_thousand))
calculate_change(100000,33000)
이 문제를 풀기 위해서는 거스름돈이 제일 큰 화폐로 큰 단위부터 어떻게 거슬러지는지 이해하여야 한다.
예를들어 100,000원 짜리 금액을 33,000원을 주고 샀다고 가정하자
거슬러줘야 할 돈은 67000원이 된다.
거슬러줘야 할 돈을 일단 변수로 만들어서 사용해야 효율적으로 코딩을 할 수 있고 편하기때문에
나는 거슬러줘야 할 돈을 remain이라는 변수로 지정하였다.
=> remain = payment - cost
어떤 원리를 사용하여 효율적으로 거스름돈을 줄수있을까?
67000원에 50000원짜리 하나를 거슬러 줄 수 있는 방법은 무엇일까 고민해봐야 한다.
첫번째로, 50000원짜리 지폐가 몇장인지 지정해주는 변수를 설정한다.
나는 fifty_thousand라는 이름으로 지정할것이다.
=> fifty_thousand = ~
두번째로, 67000원의 거스름돈에 50000원짜리 지폐가 한개 필요한 것을 알기 위해선 나눗셈을 해봐야 한다.
67000 / 50000 을 하면 몫은 1, 나머지는 17000이 된다.
50000원짜리가 몇개가 필요한지 알기 위해서는 몫만 필요하므로
fifty_thousand변수는 아래와 같이 설정한다. ( // : 나눗셈에서 몫만 나타내주는 연산자 )
=> fifty_thousand = remain//50000
또 나머지 17000원에서 10000원짜리 지폐가 한개 필요하다는 식을 만들어보자.
67000/50000 = 1...17000 이므로
우리는 여기서의 나머지가 필요하다.
나눗셈에서 나머지는 ( % ) 연산자를 사용하여 표현할 수 있다.
따라서 10000원짜리 지폐가 몇 장 있는지 알아보는 변수는
=> ten_thousand = (remain%50000) // 10000
( 50000원짜리 지폐로 나누고 난 나머지에 10000원을 나누는데 몫만 계산하라는 뜻)
이러한 구조로 5000원짜리, 1000원짜리도 변수를 지정한뒤 값을 할당하여 구하면 된다.
이후 결과값의 출력은 문자열 포맷팅을 사용하여 하면된다!

거스름돈 계산기 예제 실행 화면
'Programming Language > Python' 카테고리의 다른 글
[Python] Control Statement: While, If/Else/Elif (0) | 2023.07.03 |
---|---|
[Python Practice] Determine even/odd number (0) | 2023.07.03 |
[Python Practice] Variable, Parameter (0) | 2023.07.03 |
[Python] Abstraction - Return, Global/Local, Constant Variable (0) | 2023.07.03 |
[Python] Abstraction - Variable, Function (0) | 2023.07.03 |