CS Student’s SAP&Tech Journey✨
[백준] 1436번: 영화감독 숌 본문
1. 백준 1436번 영화감독 숌
2. 오늘의 회고
0. 문제 분석
종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수를 말한다. 제일 작은 종말의 수는 666이고, 그 다음으로 큰 수는 1666, 2666, 3666, .... 이다. 따라서, 숌은 첫 번째 영화의 제목은 "세상의 종말 666", 두 번째 영화의 제목은 "세상의 종말 1666"와 같이 이름을 지을 것이다. 일반화해서 생각하면, N번째 영화의 제목은 세상의 종말 (N번째로 작은 종말의 수) 와 같다.
: 처음에는 앞뒤로 숫자를 더하면서 붙여야 하는지 해결 방법이 보이지 않았다. 입력 범위를 보고 브루트포스로 해결해도 된다는 생각을 한 후 문제를 풀 수 있었다.
브루트 포스 알고리즘은 시간과 자원이 엄청나게 들어서 얼핏 보면 무식하고 비효율적이라고 생각할 수도 있겠지만, 정확도 100%를 보장한다는 점에서 강력한 알고리즘이다. 예를 들어 4자리의 비밀번호를 찾아야 한다고 했을때, 0000부터 9999까지 수를 높여가며 찾았을 때 내가 원하는 수를 찾을 수 있다.
1. 입력
첫째 줄에 N이 주어진다. N은 10,000보다 작거나 같은 자연수이다.
: 입력 범위를 보니, 브루트포스를 해도 무리가 아닌 범위이다.
2. 출력
첫째 줄에 N번째 영화의 제목에 들어간 수를 출력한다.
3. 문제 접근
단순하게 666부터 시작하여 1씩 더하면서 그 숫자에 666이 나오면 카운트하는걸 반복한다. 주어진 입력N과 같아지면 그 값이 영화의 제목 숫자가 된다. 따라서 브루트 포스로 반복문을 구현해야 하는 문제이다.
end는 666부터 시작하여 1씩 더해간다. 더해가는 숫자에 666이 나오면 cnt에 카운트 후 cnt가 입력n과 같을 시 break.
n = int(input())
end = 666
cnt = 0
while True:
if '666' in str(end):
cnt = cnt+1
if cnt==n:
print(end)
break
end = end+1
'알고리즘 > 백준 | 프로그래머스' 카테고리의 다른 글
[백준] 2108번: 통계학 (1) | 2024.11.14 |
---|---|
[백준] 1874번: 스택 수열 (0) | 2024.11.11 |
[백준] 24444번: 너비 우선 탐색1 / 너비우선탐색 BFS (0) | 2024.11.05 |
[파이썬] 24479번: 깊이 우선 탐색1 / 깊이우선탐색 DFS (0) | 2024.10.31 |
[파이썬] 11561번: 징검다리 / 이분탐색 (1) | 2024.10.30 |