[Python]BaekJoon.AC

[Python]백준 BaekJoon.AC 1436 : 영화감독 숌(브루트포스, find())

스뇨잉 2022. 1. 11. 15:03
728x90
728x90

 

https://www.acmicpc.net/problem/1436

 

1436번: 영화감독 숌

666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타

www.acmicpc.net

 

 

 

브루트포스 알고리즘이란 확신이 없었을 땐 이런 저런 구상들을 해봤는데,

아무리 생각해도 하나씩 카운트 해주는게 신속정확할 것 같았다.

 

1씩 늘려주는 변수 num을 처음부터 666으로 설정한 이유는, 666이 조건을 만족하는 첫 숫자이기 때문이다.

(1~665)는 시간낭비가 확실하니 666을 처음으로 뒀다.

while문을 사용했고, num을 1씩 증가시켜주며 666이 포함된 숫자인지 체크한다.

 

이때, 숫자를 string으로 변환해 find함수로 "666"을 찾아줬다.

내가 잠시 헤맸던 이유는 두번째 if문을 설정할 때,

 

더보기

<틀린코드>

if s.find("666"):

 

로 설정했기 때문이다.

"666"을 찾아내면 True를 리턴할 줄 알고 이렇게 작성했는데,

find함수는 문자열이 존재하는 index를 리턴하고 만약 존재하지 않으면 -1을 리턴한다.

그렇기 때문에 이 경우에선 -1인지 아닌지만 확인해주면 되는 것이다.

 

 

 

N = int(input())
num = 666
series = 0

while True:
    if N == series:
        print(s)
        quit()

    s = str(num)
    if s.find("666") != -1:
        series = series + 1
    num = num+1
728x90
728x90