코딩 도장 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 블럭을 그냥 복붙하고 제출하니 실행 가능한 코드가 아니라는 에러가 났었는데,
들여쓰기를 하지 않아서 에러가 발생한 것이었다.
'알고리즘 문제 풀기 연습' 카테고리의 다른 글
코딩도장 : 연습문제(지뢰찾기) (1) | 2020.10.11 |
---|---|
코딩 도장 연습문제 : 교통카드 잔액 출력 (python) (0) | 2020.10.09 |
codewars.com 문제 풀기2 (0) | 2020.09.30 |
codewars.com 문제 풀기1 (0) | 2020.09.26 |