Algorithm

[Algo] 백준 10942 팰린드롬? JAVA

조핑구 2024. 5. 8. 13:50

문제 바로가기 : https://www.acmicpc.net/problem/10942

메모리 : 217224KB

시간 : 1428ms

언어 : Java 11


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int N = Integer.parseInt(br.readLine());
        int[] arr = new int[N];
        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }
        boolean[][] pal = new boolean[N][N]; // 시작, 끝
        for (int i = 0; i < N; i++) {
            for (int j = i; j < N; j++) {
                boolean flag = true;
                // 시작이 i일때 끝이 j인 경우
                for (int a = i, b = j; a <= i + ((j - i) / 2) && b >= i; a++, b--) {
                    if (arr[a] != arr[b]) {
                        flag = false;
                        break;
                    }
                }
                pal[i][j] = flag ? true : false;
            }
        }
        int M = Integer.parseInt(br.readLine());
        for (int i = 0; i < M; i++) {
            st = new StringTokenizer(br.readLine());
            int s = Integer.parseInt(st.nextToken()) - 1;
            int e = Integer.parseInt(st.nextToken()) - 1;

            if (pal[s][e]) {
                sb.append("1\n");
            } else {
                sb.append("0\n");
            }
        }
        System.out.print(sb);
    }
}

'Algorithm' 카테고리의 다른 글

[Algo] 백준 15683 감시 JAVA  (0) 2024.05.08
[Algo] 백준 9252 LCS2 JAVA  (0) 2024.05.08
[Algo] 백준 2251 물통 JAVA  (0) 2024.05.08
[Algo] 백준 7682 틱택토 JAVA  (0) 2024.05.08
[Algo] 백준 17836 공주님을 구해라! JAVA  (0) 2024.05.08