[Baekjoon1904] 01타일

문지영·2023년 2월 25일
0

CODINGTEST

목록 보기
5/21

문제 1904

N = int(input())

dp = [0] * (N+1) # index error 방지
dp[0]=1
dp[1]=2

# 메모리 초과 방지를 위해 미리 나머지 계산
for i in range(2, N):
    dp[i] = (dp[i-2] + dp[i-1]) % 15746

print(dp[N-1])

풀이


계산은 맞았으나, index error와 메모리 초과로 틀림
N+1을 하여 index error 방지
계산 과정에도 15746의 나머지를 저장하여 int 최대 값을 초과하지 않도록

다른 풀이
index 0은 사용하지 않고 1부터 사용

N = int(input())

dp = [0] * 1000001
dp[1]=1
dp[2]=2
for i in range(3, N+1):
    dp[i] = (dp[i-2] + dp[i-1])%15746

print(dp[N])

결과

profile
BeHappy

0개의 댓글