반응형
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 |
Tags
- 순환
- Spring
- 프로그래머스
- front-end
- javascript
- 클린코드
- 정렬
- Kotlin
- algorithm
- 해슁
- java
- CleanCode
- 구현
- 코딩테스트
- html
- SQL
- SWEA
- 자바
- 검색트리
- DFS
- BFS
- android
- inflearn
- DP
- Color
- 다이나믹 프로그래밍
- Web
- 알고리즘
- CSS
- codecademy
Archives
- Today
- Total
깡뇽
[백준] 9095번 1, 2, 3 더하기 파이썬 본문
반응형
DP 유형의 문제를 풀어보자.
라고 다짐하고 문제 봤는데 이게 뭐지...? 했다...ㅎ
DP 유형이면 당연히 점화식을 만들줄 알아야 하는데.. 앞으로 꼭 차근차근 맨 처음 경우부터 일단 계산해봐야지!!!
테스트 케이스 개수 만큼의 입력받은 수를 1, 2, 3의 덧셈으로 표현할 때의 표현 가능한 경우의 수를 구하면 된다.
1, 2, 3일 때에는 규칙성이 보이지 않지만 4일 때부터는 규칙을 찾을 수 있다. 1과 2와 3일 때에 경우에 각각 1, 2, 3을 활용하여 다시 경우가 구해지기 때문이다.
9095번 1, 2, 3 더하기 풀이
#솔루션
T = int(input())
def dp(i):
if i == 1:
return 1
elif i == 2:
return 2
elif i == 3:
return 4
else:
return dp(i-1) + dp(i-2) + dp(i-3)
for _ in range(T):
n = int(input())
print(dp(n))
# 인풋 1 : 1 -> 1
# 인풋2 : 1+1 / 2 -> 2
# 인풋3: 1+1+1/1+2/2+1/3 -> 4
# 인풋4: 1+1+1+1/1+1+2/1+2+1/2+1+1/1+3/3+1 -> 7
# 인풋5:1+1+1+1+1/1+1+1+2/1+1+2+1/1+2+1+1/2+1+1+1/1+2+2/2+1+2/2+2+1/1+1+3/1+3+1/3+1+1/2+3/3+2 -> 13
# 인풋6:1+1+1+1+1+1/1+1+1+1+2/1+1+1+2+1/1+1+2+1+1/1+2+1+1+1/2+1+1+1+1/1+1+2+2/1+2+1+2/1+2+2+1/
# 2+1+1+2/2+2+1+1/2+1+2+1/1+1+1+3/1+1+3+1/1+3+1+1/3+1+1+1/1+2+3/2+1+3/3+2+1/3+1+2/1+3+2/2+3+1/...
-> 24
https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[백준] 2798번 블랙잭 파이썬 (0) | 2022.03.04 |
---|---|
[백준] 11724번 연결 요소의 개수 파이썬 (0) | 2022.03.04 |
[백준] 1012번 유기농 배추 파이썬 (0) | 2022.03.02 |
[백준] 2606번 바이러스 파이썬 (0) | 2022.03.02 |
[백준] 1149번 RGB거리 파이썬 (2) | 2022.02.28 |