반응형
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이
www.acmicpc.net
#01타일
import sys
n = int(sys.stdin.readline())
dp = [0] * (n - 1)
def tile_zero(num):
for i in range(num - 1):
if i == 0:
dp[i] = 1
if i == 1:
dp[i] = 2
if i >= 2:
dp[i] = dp[i - 1] + dp[i - 2]
return dp[-1]
print(tile_zero(n))
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])
숫자가 int를 최대값을 넘어가면은 메모리를 엄청 많이 먹는다
매순간 나눗셈을 해서 저장하면은 21억이 넘어감....
다만, 문제의 n이 최대 1,000,000 이므로 계산 중간 int의 범위를 벗어나는 경우가 생기므로
맨 마지막 결과가 아닌 중간중간 %15746을 해야한다.
왜 15746인가???는 아무도 모른다
흐흐히히하하하하
그러게 왜 타일을 바꾸냐 참나
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm👩🏼🏫] Brute-Force 알고리즘 (0) | 2022.11.21 |
---|---|
[Algorithm👩🏼🏫] N과 M (3) (0) | 2022.11.02 |
[Algorithm] 01. 선형탐색 알고리즘 VS 이진 탐색 알고리즘 (0) | 2022.09.18 |
[코딩테스트] 5. 같은 숫자는 싫어 (0) | 2022.07.01 |
[Algorithm] 4. ★☆직사각형 별찍기☆★ (0) | 2022.06.30 |
댓글