파이썬 응용 예제 : 미니의 우승 상금
예제를 풀면서 파이썬(Python)을 익혀 보도록 하겠습니다.
실습 문제로는 우승 상금을 맞추는 문제입니다.
조금 어려울 수 있으나 이 전 글에서 풀었던 문제들을 기반으로 응용해 보세요.
정말 어려울 땐 힌트를 참고하시고요.
문제
1988년 쌍문동에 사는 미니는 레이싱 대회 우승 상금으로 5,000만원을 받았습니다. 하지만 레이싱 외에는 아는 게 없으니, 이웃 어른들에게 이 돈으로 무엇을 해야 할지 물어보기로 하였습니다.
은행에서 근무하는 동일 아저씨는 은행에 돈을 맡겨서 매년 이자로 12%씩 받는 것을 추천하셨습니다. 1년 후인 1989년에는 5,000만원의 12% 이자인 600만원이 더해져 5,600만원이 된다고 하면서요.
이 이야기를 들은 미란 아주머니는 고작 12% 때문에 생돈을 은행에 넣느냐며, 얼마 전 지어진 은마아파트를 사라고 추천하셨습니다. 당시 은마아파트의 매매가는 5,000만원이었죠.
2016년 기준 은마아파트의 매매가는 11억원인데요. 1988년 은행에 5,000만원을 넣었을 경우 2016년에는 얼마가 있을지 계산하여, 동일 아저씨와 미란 아주머니 중 누구의 말을 듣는 것이 좋았을지 판단해 보세요. 2016년 은행에 얼마가 있을지는 꼭 while문을 사용해서 계산해 주세요!
2016년에 은행에 저축해 둔 금액이 더 크면, *원 차이로 동일 아저씨 말씀이 맞습니다.가 출력되도록 하세요. 반대로 은마아파트의 가격이 더 크면, *원 차이로 미란 아주머니 말씀이 맞습니다.가 출력되도록 하세요. 여기서는 꼭 if문을 사용해 주세요!
출력 예시
94193324원 차이로 동일 아저씨 말씀이 맞습니다.
힌트
1. 먼저 이 프로그램에서 사용될 변수와 상수를 모두 정의해 봅시다. 사용될 값들을 미리 적어 두면 틀이 잡힌 상태에서 고민을 시작할 수 있습니다.
2. 상수(바뀌지 않을 값)와 변수(바뀔 값)를 나눠서 생각해 봅시다.
[상수]
먼저 상수는 어떤 것들이 있을까요?
- 이자율 (INTEREST_RATE) → 12%로 고정
- 2016년 은마아파트 가격 (APARTMENT_PRICE_2016) → 11억원으로 고정
# 상수 정의
INTEREST_RATE = 0.12
APARTMENT_PRICE_2016 = 1100000000
상수 이름은 모두 대문자로 쓴다는 점 기억해 두세요!
[변수]
이제 변수도 생각해 볼게요.
우선 반복문을 돌기 위해 사용되는 변수를 생각해 봅시다.
우리는 1988년부터 시작해서 2016년까지 반복을 하고 싶은 거죠?
그러면 연도를 나타내는 변수가 필요하겠네요. year라고 이름을 짓겠습니다.
또 어떤 변수가 필요할까요?
처음에는 은행에 5,000만원을 넣었지만, 매년 그 금액이 바뀔 텐데요.
이건 bank_balance라는 변수에 저장하겠습니다.
정리하자면 이렇습니다.
- 연도 (year) → 1988부터 2016까지 바뀜
- 은행 잔액 (bank_balance) → 50000000으로 시작해서 매년 쌓임
# 변수 정의
year = 1988
bank_balance = 50000000
3. 반복문을 이용해서 1988년부터 2016년까지 돈이 얼마나 쌓이는지 계산해야 합니다.
이것을 어떻게 할 수 있을까요? while 반복문의 수행 부분에 들어갈 때마다 bank_balance가 12%씩 늘어나도록 하면 되겠죠? 코드로 표현하면 이렇습니다.
bank_balance = bank_balance * (1 + INTEREST_RATE)
4. while 반복문의 수행 부분에는 몇 번 들어가야 할까요?
1988년에서 1989년으로 넘어갈 때 이자가 쌓여야겠죠?
마찬가지로 1989년에서 1990년으로 넘어갈 때도 이자가 쌓여야 합니다.
이런 식으로 2015년에서 2016년으로 넘어갈 때까지 수행 부분으로 들어가서 이자가 쌓여야 하는 거죠.
정답
main.py
i = 0
year = 2016 - 1988
prize = 50000000
while i < year:
i += year
prize_at_2016 = prize * (1.12 ** year) # 은행 이율 12%
apartment_price_at_2016 = 1100000000 # 은마아파트 16년 기준 가격
count = round(prize_at_2016 - apartment_price_at_2016)
if (prize_at_2016 < apartment_price_at_2016):
print(f"{count}원 차이로 미란 아주머니 말씀이 맞습니다.")
else:
print(f"{count}원 차이로 동일 아저씨 말씀이 맞습니다.")
Related References
요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육
'TESTING > PROGREMING' 카테고리의 다른 글
[파이썬 코딩 - Chap.12] 실습 간단한 구구단 문제 풀어보기 (0) | 2020.11.16 |
---|---|
[파이썬 코딩 - Chap.11] 실습 피보나치 수열 문제 풀어보기 (0) | 2020.11.14 |
[파이썬 코딩 - Chap.9] 실습 간단한 약수 찾기 문제 풀어보기 (0) | 2020.11.10 |
[파이썬 코딩 - Chap.8] 실습 간단한 수학(2) 문제 풀어보기 (0) | 2020.11.04 |
[파이썬 코딩 - Chap.7] 실습 간단한 수학(1) 문제 풀어보기 (0) | 2020.11.04 |