티스토리 뷰

 

조건

 

1. 합을 나타낼땐 수를 1개 이상 사용

2. 첫번째 줄에 테스트 케이스의 갯수가 주어지고, 정수 n이 주어짐

3. n은 11미만의 양수

 

arr[n]이 방법의 수라고 생각하면

 

arr[1]=1   n=1일 때 (1)   

arr[2]=2   n=2일 때 (1,1) (2)

arr[3]=4   n=3일 때 (1,1,1) (1,2) (2,1) (3)

arr[4]=7   n=4일 때 (1,1,1,1) (1,1,2) (1,2,1) (2,1,1) (1,3) (3,1) (2,2)

arr[5]=?    n=5일 때. 1+4 / 2+3 / 3+2 로 나눠서 생각할 수 있다.

          = arr[4]+arr[3]+arr[2]=13

 

이런식으로 arr의 값을 구할 수 있으니

arr[n]=arr[n-1]+arr[n-2]+arr[n-3]이라는 공식을 도출할 수 있다.

 

전체 코드

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
import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int T=Integer.parseInt(br.readLine());
        int[] arr=new int[11];
 
        arr[0]=0;
        arr[1]=1;
        arr[2]=2;
        arr[3]=4;
  
        for(int i=0;i<T;i++){
            int num=Integer.parseInt(br.readLine());
            for(int a=4;a<=num;a++){
                arr[a]=arr[a-1]+arr[a-2]+arr[a-3];
            }
            System.out.println(arr[num]);
        }
        
    }    
}
 
cs

'알고리즘 공부' 카테고리의 다른 글

[네트워크] HTTP/HTTPS  (1) 2024.03.12
[운영체제] 메모리  (0) 2024.02.20
[백준 11399] ATM  (0) 2024.01.12
[백준 1912] 연속합 - 자바  (0) 2024.01.08
[백준 1065] 한수 - 자바  (0) 2024.01.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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
29 30 31
글 보관함