알고리즘/백준

[백준] 1259번 - 펠린드롬수

땀두 2022. 3. 19. 23:09

 

import java.util.Scanner;

public class p1259 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int idx = 0;
		int flag = 0;
		
		for (;;) {
			String s = sc.nextLine();
			if (Integer.parseInt(s) == 0) {
				return;
			}
			if (s.length() % 2 == 0) {
				idx = s.length() / 2;
				for (int i = 0; i < s.length() / 2; i++) {
					if (s.charAt(i) != s.charAt(s.length() - i - 1)) {
						flag = -1;
					}
				}
			} else {
				idx = s.length() / 2 + 1;
				for (int i = 1; i <= s.length() / 2; i++) {
					if (s.charAt(idx - i - 1) != s.charAt(idx + i-1)) {
						flag = -1;
					}
				}
			}
			if (flag == -1) {
				flag = 0;
				System.out.println("no");
			} else {
				System.out.println("yes");
			}
		}
	}
}
 

문자열을 입력받고 해당 문자열의 길이가 2의 배수이면 나눈 값을 인덱스 그렇지 않으면 버림한 값을 인덱스로 둔다. 이 값에서 전후의 값이 같은지 유무를 판단하여 다르면 flag의 값을 변화시켜 출력을 해주면 된다.