본문 바로가기

Algorithm/문제

[백준 / JAVA] 10942. 팰린드롬?(G4)

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

 

이거 왜 단순구현으로 풀림? 시간초과 나오면 2차원 배열로 구간 값을 저장해서 시도했을 것 같은데 그게 정답이라 하더라도 DP라고 보기엔 애매한 느낌이다.(브루트포스 아닌가...) 

 

 

import java.io.*;
import java.util.*;

public class Main {
    static BufferedReader br;
    static StringTokenizer st;
    static StringBuilder sb;

    public static void main(String[] args) throws Exception {
        br = new BufferedReader(new InputStreamReader(System.in));
        sb = new StringBuilder();
        int n = Integer.parseInt(br.readLine());
        array = new int[n + 1];
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++)
            array[i] = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(br.readLine());
        for (int i = 0; i < m; i++) {
            st = new StringTokenizer(br.readLine());
            sb.append(func(Integer.parseInt(st.nextToken()) - 1, Integer.parseInt(st.nextToken()) - 1) + "\n");
        }
        System.out.println(sb);
    }

    static int array[];

    static int func(int start, int end) {
        while (true) {
            if (array[start] != array[end]) {
                return 0;
            }
            if (start++ >= end--)
                return 1;
        }
    }
}