1436번: 영화감독 숌

hailjae·2022년 3월 21일
0

problemsolving/baekjoon

목록 보기
5/6

1. 코드

n = int(input())
count = 0
number = 0

while True:
    if "666" in str(number): count += 1
    if count == n: break
    number += 1
    
print(number)

2. 이해

처음에는 문제의 지문을 이해하지 못하였습니다. '일곱 번째 숫자는 6666이 아닌가?' 라고 생각했었습니다. 문제를 이해하기 위해 다른 분들께서 풀었던 풀이를 반복해서 보아 문제를 이해하였습니다.

임의의 숫자가 증가할 때, 그 숫자 내에 '666'이 포함되어 있으면 그것은 영화 제목으로 사용되는 숫자입니다. 예를 들어, 처음으로 숫자 내에 '666'이 포함되어 있는 숫자는 '666'입니다. 그러므로 첫 번째 영화 제목은 '666'이 됩니다. 그리고 임의의 숫자를 다시 증가시키면 다음으로 숫자 내에 '666'이 포함되어 있는 수는 '1666'입니다. 그러므로 두 번째 영화 제목은 '1666'이 됩니다. 이렇게 해서 제가 이해하지 못하였던 일곱 번째 영화의 제목은 '666', '1666', '2666', '3666', '4666', '5666'을 지나 '6660'이 됩니다.

따라서 해당 문제는 입력받은 숫자와 영화의 순번이 일치할 때까지 반복문을 실행시킵니다. 임의의 숫자를 증가시키고, 임의의 숫자 내에 '666'이 포함되어 있을 때, 영화의 순번 역시 증가시킵니다. 입력받은 숫자와 영화의 순번이 일치할 때, 반복문을 종료시키고 그 때의 영화 제목을 출력하여 줍니다.

3. 구현

문제를 이해하고 난 다음 구현은 크게 어렵지 않았습니다. 파이썬은 문자열 내에 특정 문자열이 포함되어 있는지를 확인할 수 있는 연산이 있기 때문에 그것을 사용하여 구현하였습니다.

0개의 댓글