개발 블로그
article thumbnail

 

아이디어

점화식 문제는 t(n) 의 값을 얻기 위해서 이전 값들인 t(0) ~ t(n - 1) 을 활용하는 문제이다.

 

t(i) 는 t(i + 1) ~ t(n) 까지의 계산에 모두 필요한데 매번 t(i) 를 계산하면 비효율적이므로 한 번 계산된 t(i) 값은 배열에 저장해뒀다가 다음에 필요할 경우 꺼내서 이를 사용하는 'DP' 방식을 활용해서 문제를 풀면 된다.

 

 

풀이코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());

        long[] t = new long[n + 1];
        t[0] = 1L;

        for (int i = 1; i <= n; i++) {
            for (int j = 0; j <= i - 1; j++) {
                t[i] += t[j] * t[i - (j + 1)];
            }
        }

        System.out.println(t[n]);
    }
}

'Algorithm > 백준 알고리즘' 카테고리의 다른 글

11256번. 사탕  (0) 2023.10.27
1629번. 곱셈  (0) 2023.10.26
2635번. 수 이어가기  (0) 2023.10.26
16208번. 귀찮음  (0) 2023.10.26
1439번. 뒤집기  (0) 2023.10.25
profile

개발 블로그

@하얀.손

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!