728x90
반응형
문제
cost원 짜리 물건을 사기위해 payment원을 냈다면
5만원권
1만원권
5천원권
1천원권
각각 몇장 씩 거스름돈을 주면되는지 구하라
5만원권
1만원권
5천원권
1천원권
각각 몇장 씩 거스름돈을 주면되는지 구하라
풀이
def calculate_change(payment, cost):
# 코드를 작성하세요.
change = payment - cost
fifty_thousand_count = int(change / 50000)
print("%d원 지폐: %d장" % (50000, fifty_thousand_count))
change = change % 50000
ten_thousand_count = int(change / 10000)
print("%d원 지폐: %d장" % (10000, ten_thousand_count))
change = change % 10000
five_thousand = int(change / 5000)
print("%d원 지폐: %d장" % (5000, five_thousand))
change = change % 5000
ten_thousand = int(change / 1000)
print("%d원 지폐: %d장" % (1000, ten_thousand))
# 테스트
calculate_change(100000, 33000)
print()
calculate_change(500000, 378000)
또 다른 풀이
def calc_change(payment, cost):
change = payment - cost
print(change)
money = 50000
sw = 0
i = 0
thousand_count = []
thousand_count.append(int(change / money))
while money != 1000:
change = change - money * thousand_count[i]
i += 1
if sw == 0:
sw =1
money = money // 5
else:
sw = 0
money = money // 2
thousand_count.append(int(change / money))
print("{}원 {}장, {}원 {}장, {}원 {}장, {}원 {}장"
.format(50000,thousand_count[0],
10000,thousand_count[1],
5000,thousand_count[2],
1000,thousand_count[3]))
calc_change(100000, 33000)
calc_change(500000, 378000)
이건 차라리 첫번째 풀이방식이 나아보인다 가독성이나 여러가지 측면에서
또다른 방식으로 풀어볼수있을까 싶어서 변수를 활용해서 짜보았지만
어차피 지폐는 정해져있고 권수가 많은것도 아니라 첫번쨰 패턴이 훨씬 가독성이나 코드라인도 효율성있어보인다.
code-reading 블로그에 방문해 주셔서 환영합니다.
댓글은 모두 환영하니 많이 달아주세요.
댓글은 모두 환영하니 많이 달아주세요.
728x90
반응형
'지난포스트 (deprecated) > Algorithm & Data Structure (deprecated)' 카테고리의 다른 글
2017 카카오 신입 공채 1차 코딩테스트 문제 풀이 (1번) (0) | 2018.11.05 |
---|---|
python - 숫자 맞추기 게임(★☆☆☆☆) (0) | 2018.10.29 |
python - 정렬 (★☆☆☆☆) (0) | 2018.10.29 |
python - 가운데 글자 가져오기(★☆☆☆☆) (0) | 2018.10.29 |
python - 리스트 활용 문제 (0) | 2018.10.24 |