티스토리 뷰

Algorithm

백준_수 이어가기_2635

Young_J 2020. 10. 6. 14:03

//알고리즘

1. 재귀로 최대가 될 수 있는 i값과 그때의 결과값을 찾음.
2. 배열을 구해서 직접 for문으로 값을 저장 시킴.

 

import java.util.Scanner;

public class 수이어가기_2635 {
	static int T, ans, N;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		T = sc.nextInt();
		
		
		for (int i = T; i >= 0; i--) {
			cal(1,T,i,i);
		}
		int[] arr = new int[ans];
		cal(1,T,N,arr);
		
		System.out.println(ans);
		int num = T;
		for (int i = 0; i < arr.length; i++) {
			num -= arr[i];  
			arr[i] = num;
			System.out.print(arr[i] + " ");
		}
		System.out.println();
		
		

	}

	private static void cal(int idx, int t, int i, int[] arr) {
		if (i < 0) {
			return;
		}
		
		arr[idx] = t-i;
		cal(idx + 1, i, t - i,arr);
	}

	private static void cal(int idx, int t, int i,int start) {
		if (i < 0) {
			if(ans<idx) {
				ans = idx;
				N = start;
			}
			return;
		}

		cal(idx + 1, i, t - i,start);

	}

}

'Algorithm' 카테고리의 다른 글

백준_블랙잭_2798  (0) 2020.10.08
백준_1로 만들기_1463  (0) 2020.10.07
백준_일곱난쟁이_2309  (0) 2020.10.05
백준_백도어_9205  (0) 2020.10.04
SW Expert Academy_햄버거 다이어트(DP)  (0) 2020.10.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함