티스토리 뷰

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

 

1436번: 영화감독 숌

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

www.acmicpc.net

 

 

 

👩‍💻문제 이해

처음 문제를 풀 때 '666'에 0부터 1씩 커지면서 수를 합치면 풀릴꺼라 생각하고,

# prevnum =  666
# cnt = 1
# i = 1부터 더해지고, 
# while cnt = int(input())
# int('666' + 'i') > int('i' + '666') and int('i' + '666') > prevnum => nextnum = int('i' + '666')
# cnt += 1
# i에 6이 들어갈 경우 = > prevnum에서 666앞에 숫자 하나가 빠지고 뒤에 + 0부터 9까지

다음과 같이 합쳐지는 숫자 사이의 규칙을 사용하려고 했지만, 쉽지 않았다.

하지만, 간단하게 생각해보면 해당 문제는 브루트포스 알고리즘을 이용하는 것이므로 모든 경우의 수를 떄려박으면 될 것 같아서 666부터(666보다 작은 숫자 안에는 '666'이 들어갈 수 없다) 수를 1씩 늘리며 str(숫자)에 '666'이 들어가면 카운트를 하는 형식으로 풀면 될 것 같았다.

 

 

 

👩‍💻666부터 모든 숫자 카운트  : 성공🌈

n = int(input())
cnt = 0

for i in range(666, 6660000):
  if '666' in str(i):
    cnt += 1
  if cnt == n:
    print(i)
    break;

so EASY.. 하게 풀렸당

 

 

Point

문제를 보고 어떻게 풀어야 할지 생각하는데 시간을 엄청 썼다...
풀고나면 간단한 문젠데 이게 왜이렇게 안보였는지 모르겠다
댓글
최근에 올라온 글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Total
Today
Yesterday