while 챕터의 연습문제
https://dojang.io/mod/quiz/view.php?id=2252
코딩 도장: 사이트에 로그인
사이트의 강좌를 수강하고 학습 효과를 최대한 높이려면 회원 가입이 필요합니다. '회원 가입' 버튼을 클릭한 후 가입 정보를 입력합니다.입력한 이메일 주소로 확인 메일이 즉시 전송됩니다.이
dojang.io
교통카드 잔액 출력하기
-표준 입력으로 금액(정수)를 받는다.
-1회당 요금은 1,350원이다.
-교통카드를 사용할 때 마다 금액에서 1,350원이 차감된다.
-잔액을 각 줄에 출력하라.
-최초 금액은 출력하지 않는다.
-잔액은 음수가 될 수 없다. (0이 될 수 있다.)
-잔액이 부족하면 출력을 끝낸다.
-4줄 안으로 작성해라.
-출력 예시
# 10000 을 입력했을 떄
8650
7300
5950
4600
3250
1900
550
# 13500 을 입력했을 떄
12150
10800
9450
8100
6750
5400
4050
2700
1350
0
제출해야 하는 답안의 밑 줄이 4줄이지만, 실제로 4줄의 제약은 없다.
최종 제출 코드
balance = int(input())
while balance > 0:
balance -= 1350
if balance >= 0:
print(balance)
3항 연산으로 하면 4줄로 충분히 가능할 것 같았는데, 3항 연산에는 조건에 맞지 않을 때 break 를 걸 수 없었다 (에러 발생)
결국 4줄로는 줄이지 못하고 제출했는데, 풀이를 보니까 4줄로도 가능했다.
수정한 4줄 코드
balance = int(input())
while balance >= 1350:
balance -= 1350
print(balance)
조건식만 잘 건드리면 코드를 더욱 간단하게 만들 수 있었다.
너무 쉬운 문제라고 생각했는데, 4줄의 제약을 만들면 생각보다 쉽지 않았던 문제였다.
아니면 이제까지 그냥 되는대로 코드를 작성해왔던 것이라는 생각이 들었다.
'알고리즘 문제 풀기 연습' 카테고리의 다른 글
코딩도장 : 연습문제(지뢰찾기) (1) | 2020.10.11 |
---|---|
코딩 도장 연습문제 : 3으로 끝나는 숫자 (0) | 2020.10.09 |
codewars.com 문제 풀기2 (0) | 2020.09.30 |
codewars.com 문제 풀기1 (0) | 2020.09.26 |