728x90
๐ ๏ธ ๋ฌธ์ ๐ ๏ธ
๐๏ธ ์ค๋ช ๐๏ธ
ํฐ๋ฆฐ๋๋กฌ์ด๋?
๊ฑฐ๊พธ๋ก ์ฝ์ด๋ ์ ๋๋ก ์ฝ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ด๋ ๋ฑ๋ง, ์ซ์, ๋ฌธ์์ด(sequence of characters) ๋ฑ
์ฆ, ์๋ค๋ก ์ฝ์ด๋ ๋๊ฐ๋ค! (ex. ํ ๋งํ )
[์ํค] https://ko.wikipedia.org/wiki/%ED%9A%8C%EB%AC%B8
์ด๋ 3๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋์ด ๋ณผ ์ ์๋ค.
- ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ
- 1, 2, 3, a, b, c
- ๋ฌด์กฐ๊ฑด ํฐ๋ฆฐ๋๋กฌ์ด๋ค.
- ๊ธธ์ด๊ฐ 2์ธ ๊ฒฝ์ฐ
- 11, 22, 33, aa, bb, cc
- ๋ ๋ฌธ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ์๋ง ํฐ๋ฆฐ๋๋กฌ์ด๋ค.
- ๊ธธ์ด๊ฐ 3์ด์์ธ ๊ฒฝ์ฐ
- 121, aba
- ๋งจ ์์ ๋ฌธ์์ ๋งจ ๋์ ๋ฌธ์๊ฐ ๊ฐ๊ณ ์ค๊ฐ์ ๋ฌธ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ผ ๊ฒฝ์ฐ์๋ง ํฐ๋ฆฐ๋๋กฌ์ด๋ค.
์์ ์ฑ์ง์ ์ด์ฉํด์ ๋ฌธ์์ด์์ ์ด๋ ๋ถ๋ถ์ด ํฐ๋ฆฐ๋๋กฌ์ธ์ง ์์๋ผ ์ ์๋ค.
n x n์ 2์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ dp[i][j]๋ i๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ j๋ฒ์งธ ์ธ๋ฑ์ค์ ๋ฌธ์์ด์ด ํ๋ฌธ์ธ์ง ์๋์ง๋ฅผ ์ ์ฅํด๋๋ค.
์ด ์ฑ์ง์ ์ด์ฉํ์ฌ ๋น์ทํ ๋ฌธ์ ๋ฅผ ํ์๋ ๊ธฐ์ต์ด ๋์ ์ ์ด๋ณธ๋ค.
๐ ํ์ด ๐
package Baekjoon;
import java.io.*;
import java.util.StringTokenizer;
public class DP10942 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] nums = new int[n];
boolean[][] dp = new boolean[n][n]; //i-j๊น์ง์ ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ด๋ฉด dp[i][j] = true
for(int i = 0; i < n; i++) {
nums[i] = Integer.parseInt(st.nextToken());
dp[i][i] = true; //๊ธธ์ด๊ฐ 1์ด๋ฉด ๋ฌด์กฐ๊ฑด ํฐ๋ฆฐ๋๋กฌ
}
for(int i = 1; i < n; i++) { //๊ธธ์ด๊ฐ 2์ด๋ฉด ๋ ์๊ฐ ๊ฐ์ํ์ง๋ง ํฐ๋ฆฐ๋๋กฌ
if(nums[i-1] == nums[i]){
dp[i-1][i] = true;
}
}
//๊ธธ์ด๊ฐ 3์ด์์ธ ์์ด์ธ ๊ฒฝ์ฐ
for(int i = 2; i < n; i++) { //i = ์์ด ๊ธธ์ด
for(int j = 0; j < n-i; j++) { //j = ์์ ์ธ๋ฑ์ค
if(nums[j] == nums[j+i] && dp[j+1][j+i-1]) dp[j][j+i] = true;
}
}
int m = Integer.parseInt(br.readLine());
for(int i = 0; i < m; i++) {
st = new StringTokenizer(br.readLine());
int start = Integer.parseInt(st.nextToken()) - 1;
int end = Integer.parseInt(st.nextToken()) - 1;
if(dp[start][end]) bw.write(1+"\n");
else bw.write(0+"\n");
}
bw.flush();
bw.close();
}
}
728x90
'ProgramSolve > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 31066๋ฒ - ๋น ์ค๋ ๋ (Java) (2) | 2024.01.02 |
---|---|
[BOJ] 12919๋ฒ - A์ B 2 (Java) (0) | 2023.12.24 |
[BOJ] 17609๋ฒ - ํ๋ฌธ (Java) (0) | 2023.12.13 |
[BOJ] 1806๋ฒ - ๋ถ๋ถํฉ (Java) (1) | 2023.12.12 |
[BOJ] 11779๋ฒ - ์ต์๋น์ฉ ๊ตฌํ๊ธฐ2 (Java) (2) | 2023.12.08 |