[알고리즘] 완전탐색, 브루트 포스 백준 1436번 - 영화감독 숌

minidoo·2020년 9월 19일
0

알고리즘

목록 보기
15/85
post-thumbnail

참고 코드

N = int(input())

num = 666 # 종말을 나타내는 가장 작은 숫자
while N: # True인 동안
    if '666' in str(num):   
        N -= 1
    num += 1 # '666'이 포함되어 있지 않으면 다음까지 계속 숫자 오를 것

print(num-1)

풀이과정

  1. 종말을 나타내는 가장 작은 숫자 666num에 저장한다.
  2. While문을 돌면서 string의 특징을 이용해 값을 구할 것이다. 입력받은 num을 string으로 변환하여 '666' 이 포함되어 있는지 확인 후, 있다면 입력받은 N값에서 1을 뺀다.
  3. 예를 들어, N에 2를 입력 받은 경우 '666' 에는 '666' 이 포함되어 있고 N은 1이된다. 그리고 num은 667이 된다. 다시 반복문을 돌아 '667' 에는 '666' 이 들어 있지 않아 num만 1을 올린 668이 된다. 이런식으로 반복문을 돌면 다음 '666' 이 포함될 때까지 반복문을 빠져나올 수 없다.
  4. 정답은 num 값에 1을 더하기 전의 값이다.

0개의 댓글