문제
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부터 6660000(10000이 제일 큰 수)까지 중 666이 들어가는 수를
- 배열에 넣고
- 배열의 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 |