출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

약간 까다로웠던 문제이지만 빠르게 풀 수 있었다:

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씩 늘려가며, countN과 같아지면 break하여 world_end값을 출력하게 했다.