728x90
반응형
설명
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다.
알파벳 이외의 문자들의 무시합니다.
입력
첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
출력
첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다.
예시 입력 1
found7, time: study; Yduts; emit, 7Dnuof
예시 출력 1
YES
정답 및 해설
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//입력값을 받기 위한 스캐너
Scanner sc = new Scanner(System.in);
//입력값 한줄을 받음
String str = sc.nextLine();
//기본 답변을 NO로 지정
String answer = "NO";
//입력받은 문자열을 전부 대문자로 변환
//정규식을 이용해 알파벳 대문자가 아니면 전부 없앰
//정규식에서 ^는 부정을 의미함.
str = str.toUpperCase().replaceAll("[^A-Z]" , "");
//뒤집어도 같은지 확인하기 위해 임시로 뒤집은 문자열을 담는부분
String tmp = new StringBuilder(str).reverse().toString();
//뒤집은 문자열과 입력받은 문자열이 같으면 answer에 YES를 넣음
if (str.equals(tmp)){
answer = "YES";
System.out.println(answer);
//일치하지 않으면 answer(NO)를 출력
} else {
System.out.println(answer);
}
}
}
게시글이 도움이 되었다면
[로그인]이 필요 없는 ❤ 눌러주세요:)
반응형
'Java 알고리즘' 카테고리의 다른 글
[Java] 피보나치 수열 (0) | 2023.08.17 |
---|---|
[Java | 알고리즘] 09. 숫자만 추출 / 정답 및 해설 (0) | 2023.01.19 |
[Java/알고리즘] 07 회문 문자열 정답 및 해설 (0) | 2023.01.15 |
[Java/알고리즘] 06 중복문자제거 정답 및 해설 (0) | 2023.01.14 |
[Java | 알고리즘] 특정 문자 뒤집기 / lt, rt 이용해서 풀이 (1) | 2023.01.13 |