수정 전
# boj, 1436 : 영화감독 숌, python3
import sys
N = int(sys.stdin.readline())
end = '666'
if N == 0:
print("end")
else:
print(str(N-1)+end)
수정 후
import sys
def shun(n):
end = 666
while n != 0:
if '666' in str(end):
n -= 1
end += 1
return end
if __name__ == "__main__":
n = int(sys.stdin.readline())
print(shun(n) - 1)
https://www.acmicpc.net/problem/1436
일단 종말의 숫자란 6이 최소 3개 이상 들어간 숫자이고 N 번째 영화의 제목은 종말의 숫자이면서 N번째로 작은 숫자라네요. 예를들면 666, 1666, 2666, 3666, 4666, 5666, 6660, 6661, 6662 이런식으로 진행되는데 5666 다음에 6666 이 되지 않는 이유는 6660 이 더 작은 종말의 숫자이기 때문이예요. 그래서 계속 1씩 더해가며 찾는 거예요. 5666 다음에 1씩 더해서 6660 까지 가야 되기 때문에 6666보다 먼저 조건을 달성(6 이 적어도 3개 이상)을 하게 되는 거져.