처음엔 매우 큰 수까지 범위를 설정하여 배열을 선언한 후 666이 포함된 숫자들만을 따로 추출하여 정답을 도출하려했으나 메모리 초과가 발생했다. 사용하지 않는 메모리가 발생할 수 있고 범위가 제한적이지 않으므로 매우 비효율적인 방법이다.
N = int(input())
arr = [i for i in range(1, 100000001)]
subtract = []
for i in arr:
if '666' in str(i):
subtract.append(i)
print(subtract[N-1])
while문을 사용하여 666이 포함된 숫자가 나오면 N의 값을 1씩 감소시켰고 과정을 반복하여 N이 0인 경우에 해당하는 숫자를 출력하게끔 코드를 작성했다.
N = int(input())
number = 1
while True:
if N == 0:
print(number-1)
break
else:
if '666' in str(number):
N -= 1
number += 1