jyamethyst21 님의 블로그

백준 1436번- '영화감독 숌' (PYTHON 풀이) 본문

CODING 💻

백준 1436번- '영화감독 숌' (PYTHON 풀이)

jyamethyst21 2025. 10. 19. 02:13

문제:

 

문제는 위와 같다. 666, 1666, 2666... 이러한 순서대로 666이 연속으로 들어가는 수를 만났을 때 몇번째 영화의 제목인지 출력하면 된다.

이번 문제 역시 예시와 설명이 크게 헷갈리는 것은 없는 것 같아 바로 풀이로 넘어가겠다.

 

풀이:

N = int(input())
a = 0 
number = 0 
while True: 
    a += 1 
    result = str(a) 
    if '666' in result: 
        number += 1 
        if number == N: 
            break 
    
print(result)

풀이는 다음과 같다. 문제 감을 잘 못 잡겠어서 서치를 통해 도움을 받아 풀었다.

우선 해당 문제는 '666'이 포함되어야 출력이 된다. 그러기 위해서 브루트포스 방식으로 처음부터 끝까지 전부 다 일일이 대입해서 사용자값에 해당하는 '666'이 포함된 값을 확인해야 한다.

먼저 반복문은 항상 True이기 때문에 계속 돌 것이고 a는 반복문에 따라 지속적으로 1씩 증가해서 '666'이 포함되는 숫자를 만들어주는 역할을 한다. 또한, number는 사용자가 입력한 값과 일치하는지 확인해주는 역할을 한다.

 

이렇게만 설명하면 헷갈릴 수 있으니 아래와 같이 차근차근 설명해보겠다.

처음 반복문을 돌 때 a의 값은 1만큼 증가하니 1부터 돌게 될건데, 이때 1을 문자 형태로 result에 넣고 이 값에 '666'이 포함되는지 조건문을 통해 확인한다. 그럼 당연히 1일 땐 '666'이 포함되지 않으니 if문을 통과할 수가 없어 다시 'a+=1'을 할 것이다. 이렇게 계속 반복문을 돌면서 '666'까지 증가가 됐을 때 if문이 True가 되어서 number가 1 증가하고 만약 사용자가 1을 입력했다면 1 == 1이 되어 이에 해당하는 result 값이 출력된다.