본문 바로가기
BOJ/[BOJ] Python

백준 1436번 풀이

by Lv. 35 라이츄 2022. 8. 20.

문제

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

 

1436번: 영화감독 숌

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

www.acmicpc.net

 

Reference

https://hongcoding.tistory.com/108

 

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

https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라

hongcoding.tistory.com

https://pearlluck.tistory.com/523

 

[백준][python]1436.영화감독 숌 -완전탐색(브루트포스)

아래의 문제는 '백준'의 알고리즘 문제 내용이며 코드는 직접 푼 내용입니다. 1436.영화감독 숌 문제 및 입출력 입출력예시 나의시도 아ㅜ문제를 완전잘못이해했다. 어쩐지 너무 문제가 어이없다

pearlluck.tistory.com

 

풀이

실로 골때리는데 해결방안이 정말 의외인 문제. 아니 농담 아니고 진짜 그렇다니까?

 

참고로 666 다음이 1666 2666 3666 4666 5666이니까 이 다음은 6666이 올 것 같은가? 놉. 6660 6661 6662… 중간에 순서가 꼬인다. 근데 그때까지 영화가 안 망할 수 있을까 예제에 187 500 나오던데 여기까지 찍기 전에 감독님 죽어요… 

아무튼 처음에 시도했던 건 이거였다.

  1. 1부터 6660000(10000이 제일 큰 수)까지 중 666이 들어가는 수를
  2. 배열에 넣고
  3. 배열의 N-1번째 요소를 반환한다

그래서 이케 했지.

import sys
N = int(sys.stdin.readline())
terminate_list =[]
terminate_end = (666 * 10000) + 1

for i in range(1,terminate_end):
    if str(i).find('666') != -1:
        terminate_list.append(i)

print(terminate_list[N-1])

근데 IndexError가 날 반길 줄은 몰랐지. 그래서 방법을 찾아봤는데 어떻게 하느냐…

그냥 1부터 쭉 더해가면서 666이 들어가는 수를 찾으면 됨.

import sys
N = int(sys.stdin.readline())
count = 0
num = 1
while True: 
    if '666' in str(num):
        count += 1
    if count == N:
        print(num)
        break;
    num += 1

농담 아니고 진짜다.

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 10989번 풀이  (0) 2022.08.20
백준 2750번 풀이  (0) 2022.08.20
백준 1018번 풀이  (0) 2022.08.20
백준 25304번 풀이  (0) 2022.08.20
백준 3003번 풀이  (0) 2022.08.20

최근댓글

최근글

skin by © 2024 ttutta