본문 바로가기
백준/완전탐색

백준 9095. 1, 2, 3 더하기

by 29살아저씨 2021. 8. 26.
반응형

🅰 백준 9095. 1, 2, 3 더하기

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

✏️ 문제 풀이

  • 알고리즘 분류에 DP라고 되어있는데 재귀함수를 이용하여서 풀었다.
  • 들어오는 n값에 -1,-2,-3을 한 값을 재귀로 돌려서 n이 0이되면 cnt++을 해줘서 케이스 수를 더해준 다음
  • 재귀 종료 후 모든 케이스를 출력해주었다.

✏️ 소스코드

package bruteforce;

import java.io.*;
public class Main_실버3_9095_손은성 {
	static int cnt;
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		for (int i = 0; i < T; i++) {
			int n = Integer.parseInt(br.readLine());
			cal(n);
			System.out.println(cnt);
			cnt = 0;
		}
	}

	private static void cal(int n) {
		if(n == 0) {
			cnt++;
			return;
		}
		if(n-1>=0) cal(n-1);
		if(n-2>=0) cal(n-2);
		if(n-3>=0) cal(n-3);
	}

}

 

✅ 후기

  • 재귀함수에 대해 익숙하지 않았던 터라 생각해내는데 어려움이 있었다. 하지만 블로그 작성할 때 다시보니 쉽게 이해가 되었다. 앞으로 더 자주 코딩을 하고 다양한 방법에 익숙해지도록 노력해야겠다.

 

반응형

'백준 > 완전탐색' 카테고리의 다른 글

백준 10971. 외판원 순회 2  (0) 2021.08.26
백준 10819. 차이를 최대로  (0) 2021.08.26
백준 10974. 모든 순열  (0) 2021.08.26
백준 10973. 이전순열  (0) 2021.08.26
백준 10972. 다음 순열  (0) 2021.08.26

댓글