본문 바로가기
알고리즘 문제 풀기 연습

코딩 도장 연습문제 : 교통카드 잔액 출력 (python)

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줄의 제약을 만들면 생각보다 쉽지 않았던 문제였다.

아니면 이제까지 그냥 되는대로 코드를 작성해왔던 것이라는 생각이 들었다.