PS/BOJ2022. 4. 30. 10:25

1 + 2 + 3으로 나타내기 : https://www.acmicpc.net/problem/9095

 

기존엔 다이나믹으로 풀이 

d[i] = d[i-3] + d[i-2] + d[i-1]

 

완전 탐색 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	static int[] arr;
	static int[] nums = { 1, 2, 3 };
	static int answer;

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N =  Integer.parseInt( br.readLine() );
		arr = new int [N];
		for ( int i = 0 ; i < N ; i ++) {
			answer = 0 ;
			dfs(0, Integer.parseInt( br.readLine()));
			System.out.println(answer);
		}
		
		
		
		
		
	}

	private static void dfs(int level, int N) {

		if (N < 0)
			return;

		if (N == 0) {
			answer++;
			return;
		}

		else {

			for (int i = 0; i < nums.length; ++i) {
				dfs(level + 1, N - nums[i]);
			}

		}

	}
}

'PS > BOJ' 카테고리의 다른 글

1697  (0) 2022.04.30
10819  (0) 2022.04.30
1451  (0) 2022.04.30
1107  (0) 2022.04.29
1476  (0) 2022.04.28
Posted by easy16