백준 - 1436 (Python) - 영화감독 숌

박준영·2021년 6월 17일
0
post-thumbnail

백준 1436

영화감독 숌

문제가 길어도 당황하지 말자..
요약하자면 "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문을 빠져나오면 된다.

0개의 댓글