코딩 테스트/백준

[Python] 백준 1436 영화감독 숌

위시리 2025. 1. 6. 21:49


문제 분석

  • 종말의 수 : 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수
  • 제일 작은 종말의 수 : 666
  • n번째로 작은 종말의 수
  • 666이 들어가는 숫자 오름차순 나열에서 ..

 

코드 설계

  • 1666, 2666, 3666, 4666, 5666, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669
  • 10666, 11666, 12666, ..., 56666, 66600, 66601, 66602, ...
  • 이런식으로 값 증가

 

정답 코드

실패.. 모르겠다..

 

다른 사람 코드 1

  • 브루트 포트 : 완전 탐색 알고리즘 - 가능한 모든 수 조합
  • 무한 반복으로 값을 증가시키면서 값에 '666'이 포함되어 있으면 count
  • count한 값이 같아지면 그때의 값 출력
import sys
input = sys.stdin.readline

n = int(input())
cnt = 0
res = 666

while True :
    if '666' in str(res) :
        cnt += 1
    
    if cnt == n :
        break
    
    res += 1
    
print(res)

 

다른 사람 코드 2

N = int(input())
movie = 666

while N:
    if "666" in str(movie):
        N -= 1
    movie += 1

print(movie - 1)