문제
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다.
알파벳 이외의 문자들의 무시합니다.
▣ 입력설명
첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
▣ 출력설명
첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다.
▣ 입력예제 1
found7, time: study; Yduts; emit, 7Dnuof
▣ 출력예제 1
YES
풀이
String이 제공하는 함수를 사용해 알파벳 대문자 혹은 소문자로 문자열을 모두 변경한 후
replaceAll 함수로 정규표현식을 사용해 대문자/소문자 이외의 문자는 제거해버리면 된다(""으로 바꿔버리는데 제거하는 것과 같은 효과)
String s = in.nextLine();
//알파벳 대문자가 아니면 제거
s = s.toUpperCase().replaceAll("[^A-Z]", "");
이후 회문 문자열 문제와 똑같이 풀면된다.
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
//알파벳 대문자가 아니면 제거
s = s.toUpperCase().replaceAll("[^A-Z]", "");
String rs = new StringBuilder(s).reverse().toString();
String answer = "NO";
if(s.equals(rs)) answer = "YES";
System.out.print(answer);
}
}
'PS(Java) > 인프런 강의 문제' 카테고리의 다른 글
[PS] 인프런 강의 - 문자열 10. 가장 짧은 문자거리 (0) | 2022.10.11 |
---|---|
[PS] 인프런 강의 - 문자열 9. 숫자만 추출 (0) | 2022.10.11 |
[PS] 인프런 강의 - 문자열 7. 회문 문자열 (0) | 2022.10.11 |
[PS] 인프런 강의 - 문자열 6. 중복 문자 제거 (0) | 2022.10.10 |
[PS] 인프런 강의 - 문자열 5. 특정 문자 뒤집기 (0) | 2022.10.10 |