자료구조 및 알고리즘/백준

[python] 1436. 영화감독 숌

viamemine 2023. 7. 27. 02:11
728x90
반응형

 

  • 문제


 

  • 잘못된 풀이
N = int(input())

num_list = list()
num_list.append(666)

for i in range(1, 10001):
    num = str(i) + str(666)
    num_list.append(int(num))
    
    num = str(666) + str(i)
    num_list.append(int(num))

num_list.sort()
print(num_list[N-1])

 

666을 기준으로 앞 뒤에 숫자를 붙여서 .sort()한다면 문제를 해결할 수 있을 것이라고 생각했다. 

 

 

  • 올바른 풀이
N = int(input())

cnt = 0
num = 1

while True:
    if '666' in str(num):
        cnt+=1
    
    if cnt==N:
        print(num)
        break
    num+=1

 

짧은 설명만을 읽고 문제를 이해하기로는 설명이 조금 부족했던 것 같다.

해당 문제는 숫자를 하나씩 올리면서 666이 들어있을 때를 count하여, 입력한 인덱스 값의 숫자를 찾는 문제이다. 

 

즉, 1666, 2666, 3666 ... 6666 이 아니라 6660이 먼저나와야 한다. 

 

위의 잘못 설계한 알고리즘은 0도 포함되지 않을 뿐더러 6666이 두 번 나오는 구조이다.

728x90

'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글

[python] 1065. 한수  (0) 2023.07.28
[python] 4673. 셀프 넘버  (0) 2023.07.27
[python] 19532. 수학은 비대면강의입니다.  (0) 2023.07.26
[python] 2231. 분해합  (0) 2023.07.25
[python] 2798. 블랙잭  (0) 2023.07.25