반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12900
<문제 풀이>
- DP 문제였다.
- dp를 하기 위해 테이블 초기값을 직사각형이 0., 1, 2개 일 때 값을 미리 설정해 준다.
- 이후 3부터 n까지 아래 코드와 같은 식으로 테이블을 채워 나간다.
<Code>
def solution(n):
dp = [0, 1, 2] # 2 x n 타일을 채울 때 n이 0, 1, 2일 때 나올 수 있는 경우의 수
if n > 2: # n이 3보다 큰 경우 진행
dp += [0] * (n - 2)
for i in range(3, n+1): # n까지
dp[i] = (dp[i-1] + dp[i-2]) % 1000000007 # 피보나치 수열과 같은 규칙, 조건에 있는 값을 나눠 준다
return dp[n]
※ 잘못된 점, 개선점 등이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.
반응형
'Alogorithm > programmers' 카테고리의 다른 글
[programmers] Lv3 거스름돈 - Python & Java (0) | 2023.05.09 |
---|---|
[programmers] Lv2 올바른 괄호 - Python & Java (0) | 2023.05.09 |
[programmers] Lv2 124 나라의 숫자 - Python (0) | 2023.04.18 |
[programmers] Lv2 두 원 사이의 정수 쌍 - Python (0) | 2023.04.17 |
[programmers] Lv2 요격 시스템 - Python & Java (0) | 2023.04.14 |