본문 바로가기
Problem Solving

[백준] 1436 영화감독 숌 python 알고리즘 문제

by DuncanKim 2022. 4. 24.
728x90

문제 1436. 영화감독 숌

 

1. 나의 코드와 발상 과정

doom_list = []
i = 0
while True:
    if '666' in str(i):
        doom_list.append(i)           
    i += 1
    if len(doom_list) == 10000:
        break

print(doom_list[int(input())-1])

일단 문제에 대한 이해가 살짝은 필요했다.

반복되는 6이 세번 있으면 그 숫자를 영화의 제목으로 쓰는 것이다.

1편부터 쓰는 영화의 제목에 들어갈 수는 다음과 같다.

666, 1666, 2666, 3666, 4666, 5666, ... 

6편까지는 앞자리 숫자가 바뀌는데, 7번째부터 숫자가 바뀐다.

6660, 6661, 6662, 6663, ... 6666, ... 6669, 7666, ....

이런 식으로 변칙적으로 숫자가 바뀐다.

그렇기 때문에, 모든 수를 다 찾아놓고, 그 속에서 영화의 제목에 들어갈 수를 찾아야 한다.

 

while문은 영화 제목 리스트를 만드는 무한 반복문이며,

i가 1씩 증가하는데, if 조건문을 통해 666이라는 반복되는 str(i)가 있으면 doom_list에 추가하는 식으로 한다.

만약, doom_list의 길이가 10000이 된다면, 반복문을 탈출하고,

마지막 라인에서 doom_list[n-1]을 통해 영화 제목에 들어갈 수를 출력해준다.

 

 

2. 아쉬운 점

한번에 성공하긴 했는데, 오답 코드가 궁금해서 뒤져보던 와중에 4중 for문을 발견할 수 있었다.

이렇게 까지 해야되나 싶었는데, 바로 뒤에 풀었던 1018 체스판 다시 칠하기에서 4중 for문을 만날 수 있었다.

 

다 쓰일 곳이 있어서 있는 것이니 함부로 생각하면 안되겠다는 다짐을 할 수 있었다.

728x90

댓글