본문 바로가기

Algorithm/문제풀이

[백준] 9095번: 1, 2, 3 더하기

문제링크https://www.acmicpc.net/problem/9095

 

문제풀이

처음에 문제를 잘못이해해서 시간이 오래 걸렸다..^-^

블로그 글들을 참고해서 보다가 잘못이해했다는 것을 깨달았다.

 

이 문제도 마찬가지로 동적 계획법으로 해결할 수 있다.

방법의 수를 적다 보면 다음과 같은 규칙을 찾을 수 있다.

방법의 수는 앞 세 개 숫자의 방법의 수를 합한 것과 같다.

 

소스코드

/*
 * 백준 9095번: 1, 2, 3 더하기
 */

#include <iostream>

using namespace std;

int main() {
	int T;
	cin >> T;

	int arr[11];
	arr[0] = 0;
	arr[1] = 1;
	arr[2] = 2;
	arr[3] = 4;

	for (int i = 4; i < 11; i++) {
		arr[i] = arr[i - 1] + arr[i - 2] + arr[i - 3];
	}

	int n;
	for (int i = 0; i < T; i++) {
		cin >> n;
		cout << arr[n] << endl;
	}

	return 0;
}

 

'Algorithm > 문제풀이' 카테고리의 다른 글

[백준] 1003번: 피보나치 함수  (0) 2019.06.12
[백준] 2579번: 계단 오르기  (0) 2019.06.12
[백준] 1463번: 1로 만들기  (0) 2019.06.11
[백준] 1181번: 단어 정렬  (0) 2019.06.09
[백준] 1427번: 소트인사이드  (0) 2019.06.09