1436번: 영화감독 숌
666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타
www.acmicpc.net
입력
첫째 줄에 숫자 N이 주어진다. N은 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 N번째 영화의 제목에 들어간 수를 출력한다.
해결 방법
정답률 44%의 실버5의 문제이지만 해결하는데 너무 오래 걸렸다.
접근 방식 자체가 잘못되었기 때문이었다.
666
1666
2666
...
9666
1666666
2666666
...
9666666
영화 제목은 위와 같은 수일줄 알았다. 하지만 그렇지 않았다.
5666 다음에 6666이 아닌 6660, 6661, 6662 ... 가 나와야 한다.
애초에 알고리즘 자체를 잘못 이해했었기에 계속 "틀렸습니다"가 나왔던 것이었다.
(이 문제는 구글링을 통해서 풀었다...)
해결 과정
단순하다. 그냥 666이 들어간 문자열을 찾으면 된다.
666이 들어간 문자열이 탐색될 때마다 count를 +1 해준다.
count == num (입력 값) 이 되면 while문을 종료한다.
최종 코드는
def main():
num = int(input())
number = 0
count = 0
while 1:
if "666" in str(number):
count += 1
if count == num:
break
number += 1
print(number)
if __name__ == "__main__":
main()
'✍️ 코테 준비 > Brute Force' 카테고리의 다른 글
[브루트 포스 / Python] BOJ 1018 - 체스판 다시 칠하기 (0) | 2021.01.11 |
---|---|
[브루트 포스 / Python] BOJ 2231 - 분해합 (0) | 2021.01.11 |
[브루트 포스 / Python] BOJ 2798 - 블랙잭 (0) | 2021.01.07 |
[브루트 포스 / Python] BOJ 7568 - 덩치 (0) | 2020.12.21 |