Dolphins의 HelloWorld
[백준]Baekjoon9095(재귀) 본문
문제링크 : https://www.acmicpc.net/problem/9095
풀이
재귀를 이용해서 풀었을 때 간단하게 풀 수 있는 문제이다.
재귀함수의 매개변수로는 (현재까지 더해진 숫자, 나타내야하는 정수) 2개를 준다.
-> func(int sum, int goal)
여기서 sum == goal이 될 때까지
func(sum+1, goal) ; func(sum+2, goal) ; func(sum+3,goal) 을 이용해서
뻗어나가고 만약 조건이 충족이 된다면 자연스럽게 그 경우의 수들은 처음 시작한 함수로
모일것이다.
#include <iostream> using namespace std; int func(int sum, int goal) { if (sum > goal) return 0; if (sum == goal) return 1; int now = 0; for (int i = 1; i <= 3; i++) { now += func(sum + i, goal); } return now; } int main() { int T; scanf("%d", &T); while (T--) { int num; scanf("%d", &num); printf("%d\n", func(0, num)); } }
'Algorithm > baekjoon문제풀이' 카테고리의 다른 글
[백준]Baekjoon1987(백 트래킹) (0) | 2018.10.04 |
---|---|
[백준]Baekjoon9663(백트래킹) (0) | 2018.10.01 |
[백준]Baekjoon1525(queue) (0) | 2018.09.26 |
[백준]Baekjoon9019(BFS,큐) (0) | 2018.09.21 |
[백준]Baekjoon1963(BFS,큐) (0) | 2018.09.19 |
Comments