Java 알고리즘

[Java | 알고리즘] 08. 유효한 팰린드롬 / 정답 및 해설 / replaceAll() , toUpperCase() 사용

엘라 ELLA 2023. 1. 18. 13:00
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);
        }
    }
}

 

 


 

 

게시글이 도움이 되었다면

[로그인]이 필요 없는 ❤ 눌러주세요:)

반응형