Coding test
백준 1436 파이썬, 영화감독 숌
우주개발
2023. 9. 26. 13:17

어 그래, 숌아 잘 해보자!

문제를 세 번 정도 읽은 듯 하다..
그래 불행의 숫자 666을 포함시키는구나 오케이.
순서를 제대로 이해해야한다.
가장 먼저 고려해봐야 했던 것은 어떤 순서로 666이 나열되는지 였다.
5666 다음에 6666 인가? 라는 생각을 했는데,
생각해보니 숫자 순서대로 했을 때 6660이 되는 것을 간과할 수 있다.
이점을 파악해야된다고 생각했다.
그렇다면, 어떤 식으로 접근을 해야하나 싶었다.
1. N을 입력받는다
n = int(input())
이건 누구나 생각할 수 있는 부분이었다.
가장 중요했던 것은 다음인데,
🤔 666이 포함된 문자중에서 순서를 확인하면 되는거라면?
i = 0 # while 문을 반복하기 위한 변수
target = 666 # N번째 순서라는 것을 확인하기 위한 666
while True:
if "666" in str(target):
i += 1
if n == i :
break
int(target)
target += 1
내가 사용한 방법은 완전탐색(brute force)으로 하여금 1부터 N까지의 숫자를 모두 돌려보면서 해당 숫자에 666이 포함되어 있었다면,
숌의 시리즈에 포함되는 것이기에 if 문으로 i에 1을 추가하는 방식으로 구현했다.
풀고 나서 다른 분들의 풀이도 봤을 때, 같은 방식으로 구현해서 아직 내 머리가 굳지 않았음을 확인할 수 있었다.
천천히 하다보면 잘 할 수 있겠지 ~
하루 한 문제씩 하면서 성장해 나가자 👍