CS 기초/알고리즘 · 문제풀이

[JAVA] String(문자열) - 회문 문자열 / 유효한 팰린드롬 / 숫자만 추출

sofiaaa 2022. 2. 19. 13:12
반응형

 

 회문 문자열

 

내 코드 (정답) - 하

 

문자의 앞뒤가 대소문자 관계없이 같으면 YES 다르면 NO 출력

정답 코드도 비슷하여 따로 기재하지 않겠다.

import java.util.*;

public class Main {
    public String solution(String str){
        String answer = "";

        String temp = str.toUpperCase(Locale.ROOT);

        for(int i = 0; i < temp.length() / 2; i++){
            if(temp.charAt(i) == temp.charAt(temp.length() - 1 - i)){
                answer = "YES";
            } else {
                answer = "NO";
                break;
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        System.out.print(T.solution(str));
    }
}

 

 

 유효한 팰린드롬

 

내 코드(오답)

정답 코드  - 상

정규식을 아직도 못 외우고 있었다는게 너무 충격이다.

replaceAll("[^A-Z]", "")  대문자가 아니면 공백!! -->>>> 암기

import java.util.*;

public class Main {
    public String solution(String s){
        String answer = "NO";
        
        // ** 정규식 이용
        // 대문자가 아니면 전부 "" 빈문자로 
        s = s.toUpperCase().replaceAll("[^A-Z]", "");
        
        String tmp = new StringBuilder(s).reverse().toString();
        if(s.equals(tmp)) answer = "YES";
        
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.nextLine();
        System.out.print(T.solution(str));
    }
}

 

 

 숫자만 추출

 

내 코드 (정답) - 하

정규식만 알고 있다면 이제 풀 수 있다.

 

import java.util.*;

public class Main {
    public Integer solution(String s){
        Integer answer = 0;
        s = s.toUpperCase().replaceAll("[^0-9]", "");
        answer = Integer.parseInt(s);

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.nextLine();
        System.out.print(T.solution(str));
    }
}
반응형