Java

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

iheeeee6-6 2023. 2. 17. 18:06
728x90

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

 

10942번: 팰린드롬?

총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다.

www.acmicpc.net

 

배열로 간단하게 해결 가능한 문제였다.

배열을 하나 더 만든 후, 기존의 배열을 뒤집은 값을 넣고

두 배열을 비교하는 방법도 존재한다!

 

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

public class Main {
	static int[] arr;
	static int n;
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		n = Integer.parseInt(br.readLine());
		arr = new int[n+1];
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i=1;i<n+1;i++) {
			arr[i]=Integer.parseInt(st.nextToken());
		}
		int t = Integer.parseInt(br.readLine());
		StringBuilder sb = new StringBuilder();
		for(int i=0;i<t;i++) {
			st = new StringTokenizer(br.readLine());
			int start = Integer.parseInt(st.nextToken());
			int end = Integer.parseInt(st.nextToken());
			sb.append(check(start,end)+"\n");
		}
		System.out.println(sb);
	}
	static int check(int start,int end) {
		int mid = (end-start)/2;
		for(int i=0;i<=mid;i++) {
			if(arr[start+i]!=arr[end-i]) return 0;
		}
		return 1;
	}

}