알고리즘/백준
[백준] 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의 값을 변화시켜 출력을 해주면 된다.