코테/백준

[백준/JAVA] 15989번: 1, 2, 3 더하기 4

imname1am 2023. 5. 29. 18:39
반응형

🔺 문제

 

15989번: 1, 2, 3 더하기 4

정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2

www.acmicpc.net

 

 

🔺 코드

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
32
33
34
35
36
import java.util.*;
import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // dp 배열 채우기 (dp[x] : x 나타내는 방법 수)
        int[][] dp = new int[10001][4];
        dp[1][1= 1;
        dp[1][2= 0;
        dp[1][3= 0;
        
        dp[2][1= 1;
        dp[2][2= 1;
        dp[2][3= 0;
        
        dp[3][1= 1;
        dp[3][2= 1;
        dp[3][3= 1;
        
        for(int i = 4 ; i < dp.length ; i++) {
            dp[i][1= dp[i-1][1];
            dp[i][2= dp[i-2][1+ dp[i-2][2];
            dp[i][3= dp[i-3][1+ dp[i-3][2+ dp[i-3][3];
        }
        
        // dp[입력 받은 값] 출력
        int t = Integer.parseInt(br.readLine());        
        while(t --> 0) {
            int n = Integer.parseInt(br.readLine());
            int sum = dp[n][1+ dp[n][2+ dp[n][3];
            System.out.println(sum);
        }
    }
}
cs
✅ 해결 아이디어
✔ DP
- dp[ i ][ j ] : 임의의 정수 i가 j 로 끝남

다른 분들이 해설을 넘 잘 적어주셔서 그거 링크 남김,,,

 


🔺 다른 풀이들

- 해설 굿,,,ㅠ

 

[알고리즘] 백준 15989 1, 2, 3 더하기 (4) Java

문제 정보플랫폼 : 백준분류 : Dynamic Programming (동적 프로그래밍)난이도 : 실버1링크 : https://www.acmicpc.net/problem/15989시간제한 및 메모리 제한 검증O(n) 풀이 : 시간제한 ok자료형 : int풀이주말

velog.io


💬 느낀 점

dp는 정말.. 재능의 영역인 것 같다...ㅎ

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

✔ 풀이 참고.. 과정 설명 짱...

 

[백준 15989] 1,2,3 더하기 4 -JAVA // le_effort//

이해하는데 정말 오래 걸렸다.... 한 시간 반은 걸린 거 같다.... 문제에서 주어진 것 처럼 중복을 없애야 한다. 일단 dp를 2차원 배열로 설정한다. - POINT A dp[n][1] 정수 n을 표현한 수 중 1로 끝나는

suhyeokeee.tistory.com

 

반응형