참고 코드
N = int(input())
num = 666 # 종말을 나타내는 가장 작은 숫자
while N: # True인 동안
if '666' in str(num):
N -= 1
num += 1 # '666'이 포함되어 있지 않으면 다음까지 계속 숫자 오를 것
print(num-1)
풀이과정
- 종말을 나타내는 가장 작은 숫자
666
을 num
에 저장한다.
- While문을 돌면서 string의 특징을 이용해 값을 구할 것이다. 입력받은
num
을 string으로 변환하여 '666'
이 포함되어 있는지 확인 후, 있다면 입력받은 N값에서 1을 뺀다.
- 예를 들어, N에 2를 입력 받은 경우
'666'
에는 '666'
이 포함되어 있고 N은 1이된다. 그리고 num은 667이 된다. 다시 반복문을 돌아 '667'
에는 '666'
이 들어 있지 않아 num만 1을 올린 668이 된다. 이런식으로 반복문을 돌면 다음 '666'
이 포함될 때까지 반복문을 빠져나올 수 없다.
- 정답은
num
값에 1을 더하기 전의 값이다.