
sol1 FAIL - 런타임에러
import sys
# 2*n 크기의 직사각형을 채우는 방법의 수 % 10007
input = sys.stdin.readline
n = int(input())
# 직사각형 방법의수 : 1,2,3,5... => An = An-1 + An-2
# 2*n => 경우의 수 구할때 키포인트 : 2행으로 고정 => ll or ㅡㅡ
# 입력값 보다 큰 리스트 하나 선언 > 찾은 규칙값을 준다.
dp = [0 for i in range(n+1)]
dp[1]=1
dp[2]=2
# 0번째, 1번째, 2번째 직사각형은 구했으니 3번째 직사각형부터 구한다.
# range 함수는 미만이니깐 n 만큼 돌리고 싶으면 n+1
for i in range(3,n+1):
dp[i] = (dp[i-1]+dp[i-2])
print(dp[n] % 10007)
sol2
import sys
# 2*n 크기의 직사각형을 채우는 방법의 수 % 10007
input = sys.stdin.readline
n = int(input())
# 직사각형 방법의수 : 1,2,3,5... => An = An-1 + An-2
# 2*n => 경우의 수 구할때 키포인트 : 2행으로 고정 => ll or ㅡㅡ
# 입력값 보다 큰 리스트 하나 선언 > 찾은 규칙값을 준다.
dp = [0]*1001
dp[1]=1
dp[2]=2
# 3번째 직사각형부터 구한다.
# range 함수는 미만이니깐 n 만큼 돌리고 싶으면 n+1
for i in range(3,1001):
dp[i] = (dp[i-1]+dp[i-2])
print(dp[n] % 10007)

4회 제출만에 성공했다.
1 try > 틀렸습니다. => 잘못제출;
2,3 try > 조건문 안에서 % 연산을 수행
4,5 try => 코드 제출시에는 주석 삭제, dp 리스크 크기 > 주어진 조건 범위+1 으로 수정.
'Algorithm > BaekJOON(Python)' 카테고리의 다른 글
[백준/DP/9095] 1, 2, 3 더하기 (0) | 2022.05.30 |
---|---|
[백준/DP/11727] 2×n 타일링 2 (0) | 2022.05.12 |
[백준/DP/1463] 1로 만들기 (0) | 2022.05.03 |
[백준/정렬/2751] 수 정렬하기 - 2 (0) | 2022.05.02 |
[백준/정렬/2750] 수 정렬하기 (0) | 2022.05.02 |