알고리즘/백준[baekjoon]

[baekjoon] 1436 : 영화감독 숌 by python

코딩하는이씨 2022. 3. 5. 00:06
728x90
반응형

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

 

1436번: 영화감독 숌

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

www.acmicpc.net

 

code

n = int(input())
i = 0
num = 666
while True:
    if '666' in str(num):
        i += 1
    if i == n:
        print(num)
        break
    num += 1

 

이번문제는 조건을 확인하고 난후에 처음든 생각은 무수히 많은 수들을 언제 다 탐색하지 였다.

 

처음에 난 아래와 같이 무수히 많은 수를 하나씩 탐색해 666이 들어갔다면 순서대로 배열에 넣어서 원하는 순서의 값을 찾았다.

n = int(input())
a=[]
for i in range(666,10000**2):
    if '666' in str(i):
        a.append(i)

print(a[n-1])

이러다 보니 당연히 컴파일러에서도 엄청난 시간이 걸리고 백준에서도 오류가 떴다.

게다가 수 끝 값을 임의로 10000**2로 설정하였는데 n이 10000일때 저 수를 넘을 수도 있어 제대로된 코드가 아니다.

 

그래서 조금 더 쉽게 생각한건 시작은 666으로 고정임으로 666부터 1씩 더해가는 수에 666이 들어간다면 num변수에 저장하는 식으로 진행하였다.

 

수를 찾을때마단 i로 카운트해 입력받은 n까지만 찾았다.

 

이러다 보니 불필요한 수들을 검색할 시간을 줄여 풀어낼 수 있었다.

 

 

728x90
반응형