슈콩

[BOJ] 백준 10942 팰린드롬? 본문

Algorithms/Baekjoon

[BOJ] 백준 10942 팰린드롬?

shukong 2025. 8. 21. 23:15

[문제]

https://www.acmicpc.net/problem/10942

 

 

[소스 코드]

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringBuilder sb = new StringBuilder();
    	StringTokenizer st;
    	int n = Integer.parseInt(br.readLine());
    	int[] num = new int[n+1];
    	int[][] dp = new int[n+1][n+1];
    	dp[1][1] = 1;
    	st = new StringTokenizer(br.readLine());
    	for(int i=1;i<=n;i++) {
    		num[i] = Integer.parseInt(st.nextToken());
    	}
    	for(int i=2;i<=n;i++) {
    		dp[i][i] = 1;
    		if(num[i]==num[i-1]) dp[i-1][i] = 1; 
    	}
    	for(int range=2;range<n;range++) {
    		for(int i=1;i<=n-range;i++) {
    			int s = i; int e = i+range;
    			if(num[s]==num[e] && dp[s+1][e-1]==1) dp[s][e] = 1;
    		}
    	}
    	int m = Integer.parseInt(br.readLine());
    	for(int t=0;t<m;t++) {
    		st = new StringTokenizer(br.readLine());
    		int s = Integer.parseInt(st.nextToken());
    		int e = Integer.parseInt(st.nextToken());
    		sb.append(dp[s][e] + "\n");
    	}
    	System.out.println(sb);
    }
}