본문 바로가기

알고리즘/백준

[Python] 백준 파이썬 1436 영화감독 숌

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

 

1436번: 영화감독 숌

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

www.acmicpc.net

  • 첫 시도
# 백준 1436 영화감독 숌

n = int(input())

title_list = []
i=666
while True:
  if len(title_list) == n:
    print(title_list[-1])
    break
  i_list = list(str(i))
  six_cnt = 0
  for j in range(len(i_list)-1):
    if i_list[j] == '6' and i_list[j+1] == '6':
      six_cnt += 1
    if six_cnt >= 2:
      title_list.append(i)
      i+=1
      break
  i += 1

666부터 시작해서 숫자를 1씩 키워가며 확인했습니다.

확인할 때 숫자를 리스트로 바꿔서 각 자릿수를 비교하며 6이 연속 3번이 되는 숫자를 리스트에 추가하고 마지막에 출력하는 방식입니다.

이렇게 풀면 답이 틀렸다고 나옵니다... 아마 중간에 조건을 빼먹은 게 있는 것 같은데 어디서부터 잘못됐는지 찾기가 힘들어서 새로 작성하기로 했습니다.

 

그래서 그냥 666이 포함되어있는지만 판단하자! 해서 코드를 좀 바꿨습니다.

n = int(input())

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

666부터 1씩 수를 키워가면서 확인하는 건 똑같지만 숫자를 자릿수 하나하나 쪼개서 확인하는 게 아니라 그냥 전부 문자열로 바꿔주고 '666'을 포함하는지만 확인했습니다.

이렇게 쉬운 문제였는데 쓸데없이 어렵게 풀려고 했네요 ㅎㅎ