Skip to content

Commit ce8ef58

Browse files
committed
feat(boj): boj 10942 팰린드롬? - dp
1 parent ca4ec4c commit ce8ef58

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

BOJ/boj_10942.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// boj 10942 펠린드롬?
2+
// dp
3+
4+
import java.io.BufferedReader;
5+
import java.io.InputStreamReader;
6+
import java.util.StringTokenizer;
7+
8+
public class boj_10942 {
9+
static int n, m, s, e;
10+
static int[] numbers;
11+
static boolean[][] isPalindrome;
12+
13+
public static void main(String[] args) throws Exception {
14+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15+
StringTokenizer st = new StringTokenizer(br.readLine());
16+
StringBuilder sb = new StringBuilder();
17+
18+
n = stoi(st.nextToken());
19+
numbers = new int [n];
20+
isPalindrome = new boolean [n][n];
21+
st = new StringTokenizer(br.readLine());
22+
for (int i = 0; i < n; ++i) {
23+
numbers[i] = stoi(st.nextToken());
24+
isPalindrome[i][i] = true;
25+
if (i > 0 && numbers[i-1] == numbers[i]) isPalindrome[i-1][i] = true;
26+
}
27+
for (int l = 3; l <= n; ++l) {
28+
for (int i = 0; i <= n - l; ++i) {
29+
if (numbers[i] == numbers[i + l - 1] && isPalindrome[i + 1][i + l - 2])
30+
isPalindrome[i][i + l - 1] = true;
31+
}
32+
}
33+
m = stoi(br.readLine());
34+
while (m-- > 0) {
35+
st = new StringTokenizer(br.readLine());
36+
s = stoi(st.nextToken()) - 1;
37+
e = stoi(st.nextToken()) - 1;
38+
sb.append(isPalindrome[s][e] ? 1 : 0).append('\n');
39+
}
40+
System.out.print(sb);
41+
}
42+
43+
static int stoi(String s) {return Integer.parseInt(s);}
44+
}

0 commit comments

Comments
 (0)