https://www.acmicpc.net/problem/15989
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
나의풀이
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws Exception{
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.out));
int[][] arr=new int[10001][4];
arr[1][1]=1; arr[1][2]=0; arr[1][3]=0;
arr[2][1]=1; arr[2][2]=1; arr[2][3]=0;
arr[3][1]=1; arr[3][2]=1; arr[3][3]=1;
int t= Integer.parseInt(br.readLine());
for(int n=4;n<10001; n++){
arr[n][1]=arr[n-1][1];
arr[n][2]=arr[n-2][1]+arr[n-2][2];
arr[n][3]=arr[n-3][1]+arr[n-3][2]+arr[n-3][3];
}
for(int i=0;i<t;i++){
int n=Integer.parseInt(br.readLine());
bw.write(Integer.toString(arr[n][1]+arr[n][2]+arr[n][3])+"\n");
}
bw.flush();
br.close();
bw.close();
}
}
참고한 사이트
https://suhyeokeee.tistory.com/24
[백준 15989] 1,2,3 더하기 4 -JAVA // le_effort//
이해하는데 정말 오래 걸렸다.... 한 시간 반은 걸린 거 같다.... 문제에서 주어진 것 처럼 중복을 없애야 한다. 일단 dp를 2차원 배열로 설정한다. - POINT A dp[n][1] 정수 n을 표현한 수 중 1로 끝나는
suhyeokeee.tistory.com
'코테풀이' 카테고리의 다른 글
[백준] BOJ - 19637 IF문 좀 대신 써줘 자바 java (실버 3) (2) | 2023.03.08 |
---|---|
[백준] BOJ - 2531 회전 초밥 자바 java (실버1) (0) | 2023.03.02 |
[백준] BOJ - 20310 타노스 자바 java (실버3) (0) | 2023.02.28 |
[프로그래머스] 프로그래머스 미로 탈출 java 자바 (level2) (0) | 2023.02.23 |
[프로그래머스] 프로그래머스 점 찍기 자바 java (level2) (0) | 2023.02.23 |