Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 국비지원취업
- 디자인챌린지
- baekjoon
- 내일배움캠프
- 백엔드개발자
- 오블완
- 국비지원교육
- OPENPATH
- UXUI기초정복
- KDT
- 오픈패스
- mysql
- 디자인강의
- 객체지향
- 환급챌린지
- 백엔드 부트캠프
- 백준
- 백엔드
- UXUI챌린지
- Be
- Spring
- 국비지원
- 티스토리챌린지
- 내일배움카드
- 디자인교육
- 오픈챌린지
- 패스트캠퍼스
- Java
- UXUIPrimary
- 부트캠프
Archives
- Today
- Total
군만두의 IT 공부 일지
[백준] 9095번: 1, 2, 3 더하기 본문
✅문제: 9095번
📌문제풀이
1, 2, 3의 합으로 숫자 n을 표현하는 방법의 수를 계산하는 문제임. n은 최대 10까지 주어지며, 이를 동적 계획법(DP)을 사용해 해결함.
- DP 배열 초기화
- dp[i]: 숫자 i를 1, 2, 3의 합으로 나타내는 방법의 수를 저장하는 배열
- 초기값 설정
- dp[1] = 1dp[1]: 1을 표현하는 방법은 1개 (1)
- dp[2] = 2dp[2]: 2를 표현하는 방법은 2개 (1+1, 2)
- dp[3] = 4: 3을 표현하는 방법은 4개 (1+1+1, 1+2, 2+1, 3)
- 점화식
- 숫자 i를 1, 2, 3의 합으로 표현하기 위해 고려해야 할 사항
- 마지막 숫자 : dp[i−1]
- 마지막 숫자 : dp[i−2]
- 마지막 숫자 : dp[i−3]
- 따라서, dp[i]=dp[i−1]+dp[i−2]+dp[i−3]가 유도됨.
- 숫자 i를 1, 2, 3의 합으로 표현하기 위해 고려해야 할 사항
- 결과 출력
- 주어진 테스트 케이스 t에 대해서 dp[n]을 출력함.
t = int(input())
dp = [0, 1, 2, 4] + [0] * 7
for i in range(4, 11):
dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
for _ in range(t):
n = int(input())
print(dp[n])
📌후기
- DP에 대한 기본적인 문제였음. 점화식을 유도하는 과정에서 문제를 이해할 수 있었음.
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1991번: 트리 순회 (파이썬) (0) | 2024.11.27 |
---|---|
[백준] 11057번: 오르막 수 (파이썬) (0) | 2024.11.26 |
[백준] 17952번: 과제는 끝나지 않아! (파이썬) (0) | 2024.11.24 |
[백준] 1260번: DFS와 BFS (0) | 2024.11.20 |
[백준] 2293번: 동전 1 (파이썬) (2) | 2024.11.19 |
Comments