일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 배열
- 그래프
- type 함수
- Git
- 스택
- NQueen
- 파이썬
- 재귀 함수
- 트리
- 탐색
- 분할 정복
- 자기개발
- 순차 탐색
- format 메서드
- 백준
- MiniHeap
- 그리디
- UNIX
- 우분투
- 유닉스
- git hub
- 동적 계획
- IT
- 정렬
- 이진 탐색
- 자료구조
- 알고리즘
- 기초
- sys.stdin.readline()
- 문법
Archives
- Today
- Total
코딩고치
[백준][DP] 1, 2, 3 더하기 3 본문
1. 문제 주소
15988번: 1, 2, 3 더하기 3
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.
www.acmicpc.net
2. 문제
정수 n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력하는 문제이다. n을 나타내는 방법은 n-1을 나타내는 방법에서 1을 더하고 n-2를 나타내는 방법에서 2를 더하고 n-3을 나타내는 방법에서 3을 더하면 된다. 따라서 n을 나타내는 방법의 수는 n-1, n-2, n-3을 나타내는 방법을 모두 더해주면 된다.
3. 소스 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <iostream>
using namespace std;
long long divide = 1000000009LL;
long long result[1000001];
int main() {
int t;
cin >> t;
result[0] = 1; result[1] = 1; result[2] = 2;
for (int i = 3; i <= 1000000; i++) {
result[i] = (result[i - 1] + result[i - 2] + result[i - 3]) % divide;
}
while (t--) {
int n;
cin >> n;
cout << result[n] << '\n';
}
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'백준 알고리즘 기초 > 다이내믹 프로그래밍' 카테고리의 다른 글
[백준][DP] 동물원 (0) | 2020.03.22 |
---|---|
[백준][DP] RGB거리 (0) | 2020.03.12 |
[백준][DP] 합분해 (0) | 2019.11.20 |
[백준][DP] 제곱수의 합 (0) | 2019.11.08 |
[백준][DP] 연속합 (0) | 2019.11.06 |
Comments