package 섹션1_String;
import java.io.*;
public class 유효한_팰린드롬 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] arr = br.readLine().toUpperCase().toCharArray();
int i=0;
int j=arr.length-1;
String answer = "YES";
while(i<j){
if(!Character.isAlphabetic(arr[i])){
i++;
}else if (!Character.isAlphabetic(arr[j])) {
j--;
}else if(arr[i] == arr[j]){ // 두 문자값이 일치하는 경우
i++;
j--;
}else{ // 두 문자값이 일치하지 않는 경우
answer = "NO";
break;
}
}
bw.write(answer);
bw.flush();
br.close();
bw.close();
}
}
✅ 문자열 정규식
package 섹션1_String;
import java.io.*;
public class 유효한_팰린드롬 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String answer="NO";
// 문자열 정규식(A-Z가 아닌 것들을 전부 빈 문자로 대체)
String str= br.readLine().toUpperCase().replaceAll("[^A-Z]","");
String str_reverse=new StringBuilder(str).reverse().toString();
// 두 문자열이 같은지 비교
if(str.equals(str_reverse)){
answer = "YES";
}
bw.write(answer);
bw.flush();
bw.close();
br.close();
}
}
'알고리즘 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
1-7 회문 문자열 (0) | 2025.05.01 |
---|---|
1-6 중복 문자 제거 (1) | 2025.04.09 |
1-5 특정 문자 뒤집기 (0) | 2025.04.09 |
1-3 문장 속 가장 긴 단어 (0) | 2025.04.08 |
1-2 대소문자 변환 (1) | 2025.04.07 |