[문제풀이] 01-08. 유효한 팰린드롬

𝒄𝒉𝒂𝒏𝒎𝒊𝒏·2023년 10월 24일
0

인프런, 자바(Java) 알고리즘 문제풀이

String(문자열) 다루기 - 0108. 유효한 팰린드롬


🗒️ 문제


🎈 나의 풀이

	private static String solution(String str) {
        String alphas = "";
        char[] chars = str.toCharArray();

        for(char c : chars) {
            if(Character.isAlphabetic(c)) alphas += c;
        }

        if(!alphas.equalsIgnoreCase(new StringBuilder(alphas).reverse().toString())) 
        	return "NO";
        return "YES";
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println(solution(sc.nextLine()));
    }


🖍️ 강의 풀이

    private static String solution(String str) {
        str = str.toUpperCase();
        str = str.replaceAll("[^A-Z]","");

        if(!str.equals(new StringBuilder(str).reverse().toString())) return "NO";

        return "YES";
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println(solution(sc.nextLine()));
    }


💬 짚어가기

이번 문제는 07. 회문 문자열 문제와 거의 동일하며, 문자열에서 알파벳 외의 문자를
제거하는 문제에 가깝다.

나의 풀이의 경우 isAlphabetic() 메소드를 이용하여 문자열을 순회하며 알파벳만
추려내고 이후 회문 여부를 검사하도록 구현하였다.


강의에서는 replaceAll() 메소드와 정규표현식(Reqular Expression)을 활용하여
문제를 해결했다. 정규표현식은 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 부분을
찾아내기 위해 사용하는 것으로, 미리 정의된 기호와 문자를 이용해서 작성한 문자열을 말한다.

[^ ]는 부정을 의미하며, A-Z는 알파벳 대문자 A부터 Z까지를 의미한다.

profile
𝑶𝒏𝒆 𝒅𝒂𝒚 𝒐𝒓 𝒅𝒂𝒚 𝒐𝒏𝒆.

0개의 댓글