ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 9095 1, 2, 3 더하기
    PS 2023. 5. 4. 00:07

    풀이 :

    우선 해당문제의 설명부분에서 4의 경우의 수는 총 7가지가 되는 것을 보여주는 거처럼, n의 경우의 수는 (n-1) + (n-2) + (n-3)으로 구할 수 있습니다.

    그래서 int형 배열을 생성해주고 n은 11보다 작으니 10까지의 경우의 수를 배열에 저장해준 뒤 입력 받은 값을 출력하는 되는 문제입니다.

    이렇게 반복된 연산을 효율적으로 풀어주는 것을 동적 프로그래밍, 다이나믹 프로그래밍 다른 말로는 기억하기 프로그래밍이라고도 합니다.

    앞으로는 자료구조와 동적 프로그래밍 문제를 많이 풀어볼 예정입니다.

     

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    
    public class Main{
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringBuilder sb = new StringBuilder();
            
            int cnt = Integer.parseInt(br.readLine());
            
            int[] dp = new int[11];
            dp[0] = 0;
            dp[1] = 1;
            dp[2] = 2;
            dp[3] = 4;
            
            for(int i = 4; i < 11; i++){
                dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
            }
            for(int i = 0; i < cnt; i++){
                int num = Integer.parseInt(br.readLine());
                sb.append(dp[num]).append("\n");
            }
            System.out.println(sb);
            
            br.close();
            
            
        }
    }

    'PS' 카테고리의 다른 글

    Java 17413 단어 뒤집기2  (0) 2023.05.04
    Java 10866 덱  (0) 2023.05.04
    Java 10773 제로  (0) 2023.05.02
    Java 2164 카드2  (0) 2023.05.02
    Java 10845 큐  (0) 2023.05.02
Designed by Tistory.