약간 까다로웠던 문제이지만 빠르게 풀 수 있었다:
import sys
N = int(sys.stdin.readline())
world_end = 0
num = 1
count = 0
while True:
if '666' in str(num):
world_end = num
count += 1
if count == N:
break
num += 1
else:
num+=1
print(world_end)
약간 까다로웠던 부분은 '666'이 있는 숫자를 언제까지 찾아줘야 하는지를 코드로 표현해야 했다는 것이다. 애초에 N
값이 10,000 이하의 자연수이므로, 어디까지 '666'을 구해야 시간초과가 이루어지지 않으면서 잘 풀 수 있을까 고민했다. 그래서 한 방법이다. while문
을 사용하여 '666'이 나올때마다 world_end
문자열을 해당 숫자로 정의해주고, count
도 1씩 늘려가며, count
가 N
과 같아지면 break
하여 world_end
값을 출력하게 했다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제풀이: 4153번> 파이썬 - 직각삼각형 (0) | 2020.12.05 |
---|---|
<백준 문제풀이: 9020번> 파이썬 - 골드바흐의 추측 (0) | 2020.12.04 |
<백준 문제풀이: 2775번> 파이썬 - 부녀회장이 될테야 (0) | 2020.12.03 |
<백준 문제풀이: 7658번> 파이썬 - 덩치 (0) | 2020.12.03 |
<백준 문제풀이: 2839번> 파이썬 - 설탕 배달 (0) | 2020.12.02 |