백준 1435 - 영화감독 슘/파이썬

num = int(input())


a = []
for i in range(666, 10001):
    if '666' in str(i):
        a.append(i)
print(a[num-1])

첫번째 방법 (제출시 런타임 에러)

결과값은 나오지만 런타임 에러라는 채점 결과를 맞이하게된다.
최소한 for문을 10001 - 666 의 길이만큼 돌아야 기준이 되는 a 리스트가 완성되고, 그것을 바탕으로 인덱스를 매칭 시키는 방법인데, 조금더 효율적인 방법을 찾아야겠다!!!

그리하여 찾아낸 2번째 방법!!

num = int(input())

sixes = 666
count = 0

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

위 방법과 다르게 , num가 작을수록 돌아야하는 while문의 길이가 줄어들게 되므로 최소시간이 현저히 줄수있다.

좋은 웹페이지 즐겨찾기