[백준] 1436번 영화감독 숌

거북이·2023년 1월 2일
0

백준[실버5]

목록 보기
22/114
post-thumbnail

💡문제접근1

처음엔 매우 큰 수까지 범위를 설정하여 배열을 선언한 후 666이 포함된 숫자들만을 따로 추출하여 정답을 도출하려했으나 메모리 초과가 발생했다. 사용하지 않는 메모리가 발생할 수 있고 범위가 제한적이지 않으므로 매우 비효율적인 방법이다.

💡코드1

N = int(input())

arr = [i for i in range(1, 100000001)]
subtract = []
for i in arr:
    if '666' in str(i):
        subtract.append(i)

print(subtract[N-1])

📌코드1 실행 결과 : 메모리 초과

💡문제접근2

while문을 사용하여 666이 포함된 숫자가 나오면 N의 값을 1씩 감소시켰고 과정을 반복하여 N이 0인 경우에 해당하는 숫자를 출력하게끔 코드를 작성했다.

💡코드2(메모리 : 30616KB, 616ms)

N = int(input())

number = 1
while True:
    if N == 0:
        print(number-1)
        break
    else:
        if '666' in str(number):
            N -= 1
    number += 1

💡소요시간 : 6m

0개의 댓글