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

코딩 도장 연습문제 : 3으로 끝나는 숫자

코딩 도장 while 연습 문제

 

https://dojang.io/mod/page/view.php?id=1289

 

COS Pro 2급 파이썬: 17.6 연습문제: 3 으로 끝나는 숫자만 출력하기

다음 소스 코드를 완성하여 1과 73 사이의 숫자 중 3으로 끝나는 숫자만 출력되게 만드세요. practice_number_ending_3.py i = 0 while True:     ① _____________ __________ __________                     �

dojang.io

 

-표준 입력으로 정수 두 개가 입력된다.

-첫 번째 입력 값의 범위는 1~200, 두 번째 입력 값의 범위는 10~200.

-첫 번째 입력 값은 두 번째 입력 값보다 항상 작다.

-다음 소스 코드를 완성하여 첫 번째 정수와 두 번째 정수 사이의 숫자 중 3으로 끝나지 않는 숫자를 출력하라.

-정답에 코드를 작성할 때는 while True:에 맞춰서 들여쓰기를 해주세요.

-출력 예시

#1, 20 입력 했을 때
1 2 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20

#22, 33 입력 했을 때
21 22 24 25 26 27 28 29 30 31 32

-기본 코드

start, stop = map(int, input().split())
i = start
while True:





    print(i, end=" ")
    i += 1

 

 

제출 코드

start, stop = map(int, input().split())
i = start
while True:
  if i > stop:
    break
  if "3" in str(i)[-1]:
    i += 1
    continue
  else:
    print(i, end=" ")
    i += 1

 

스트링 값의 가장 끝자리가 3일 때 continue를 해주었다. 물론, 10으로 나눈 나머지가 3일 때 continue 를 해줘도 된다.

다만, 그렇게만 하면 무한루프가 돌게 된다.

i 를 증가시키는 코드가 아래에 있기 때문에, continue 로 패스되기 때문에 계속 i 는 계속 3에서 머물게 된다.

그래서 continue 전에 i 에 +1 을 반드시 해줘야 한다.

애먹었던 점은, 제출할 때 if 블럭을 그냥 복붙하고 제출하니 실행 가능한 코드가 아니라는 에러가 났었는데,

들여쓰기를 하지 않아서 에러가 발생한 것이었다.