[Java] 백준 1259번 팰린드롬수

2022. 3. 29. 09:31
728x90

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

 

1259번: 팰린드롬수

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

www.acmicpc.net

이번 문제는 앞뒤가 똑같으면 팰린드롬수입니다.

반을 쪼개서 비교하는 방법도 있지만 메모리나 시간초과가 발생하지 않을꺼 같아서

저는 그냥 리버스 배열을 하나 만들어 줘서 비교해줬습니다.

리버스 배열을 만들어서 원래 배열과 비교해줘서 같은 문자의 갯수가

입력받은 문자열의 길이와 같다면 팰린드롬수입니다.

 

 

package BJ;

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

public class BJ_팰린드롬수 {
	static String str;
	static char[] arr1;
	static char[] arr2;
	static int cnt;
	public static void main(String[] args) throws IOException {
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		while(true) {
			str = br.readLine();
			if(str.equals("0")) {
				break;
			}
			int len = str.length();
			arr1 = new char[len];
			arr2 = new char[len];
			
			for (int i = 0; i < len; i++) {
				arr1[i] = str.charAt(i);
			}
			for (int i = 0; i < len; i++) {
				arr2[i] = arr1[len - 1 - i];
			}
			for (int i = 0; i < len; i++) {
				if(arr1[i] == arr2[i]) {
					cnt++;
				}
			}
			
			if(len == cnt) System.out.println("yes");
			else System.out.println("no");
			cnt = 0;
		}
		
	}

}

 

Ysik Github : https://github.com/Y1sik/Algorithm/blob/main/BJ/BJ_%ED%8C%B0%EB%A6%B0%EB%93%9C%EB%A1%AC%EC%88%98.java

반응형

BELATED ARTICLES

more