알고리즘/Array
1, 2, 3 더하기
e-pd
2021. 7. 12. 22:19
https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
for (int i = 0; i < count; i++) {
int n = sc.nextInt();
System.out.println(recursive(n));
}
}
public static int recursive(int n) {
if (n == 0 || n == 1) {
return 1;
}
int sum = 0;
for (int i = 1; i <= n && i <= 3; i++) {
sum += recursive(n-i);
}
return sum;
}
}
재귀적으로 합을 구하는 문제
1. 끝나는 조건을 정의한다.
2. n까지 구하는데 1,2,3을 사용해서 구한다.
3. 재귀를 하면서 조건을 줄여나간다.