문제가 길어도 당황하지 말자..
요약하자면 "666"이 포함된 숫자열 중에서 N번째 숫자를 찾는 문제다.
N = 1 => 666
N = 2 => 1666
N = 3 => 2666
N = 4 => 3666
...
N = 7 => 6660
N = 8 => 6661
N = 9 => 6662
...
N = 17 => 7666
N = 18 => 8666
이런 식으로 진행이 되는 셈.
n = int(input())
cnt = 0
six_n = 666
while True:
if '666' in str(six_n):
cnt += 1
if cnt == n:
print(six_n)
break
six_n += 1
우선 N의 숫자까지 수를 늘려갈 cnt 변수를 0으로, "666"이 포함된 숫자 중 가장 작은 666을 six_n 변수로 만든다.
while문을 무한 루프로 돌려서 만약 six_n의 수를 하나씩 계속 늘려가며 str(문자열)로 바꾼 변수 내에 "666"이 포함된다면 cnt 개수를 하나 늘리면 된다. cnt값이 n의 값에 도달했을 때 출력 후 break로 while문을 빠져나오면 된다.