728x90
    
    
  인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다.
- 문제 링크 : https://cote.inflearn.com/contest/10/problem/01-08
- 간단한 문제 설명 : 알파벳을 제외한 문자들은 무시하고 대소문자를 구분하지 않고 펠린드롬인지 아닌지 판별
내 풀이
- 입력된 문자열을 대문자로 변환
- Character.isAlphabetic()메서드를 사용하여 알파벳인 경우에만 문자를 비교
import java.io.*;
public class Main {
    public String solution(String s) {
        char[] chars = s.toUpperCase().toCharArray();
        int left = 0;
        int right = chars.length -1;
        while (left < right) {
            if (!Character.isAlphabetic(chars[left])) {
                left++;
                continue;
            }
            if (!Character.isAlphabetic(chars[right])) {
                right--;
                continue;
            }
            if (chars[left] != chars[right]) {
                return "NO";
            }
            left++; right--;
        }
        return "YES";
    }
    public static void main(String[] args) throws IOException {
        Main T = new Main();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        System.out.println(T.solution(s));
    }
}강의 풀이
- s=s.toUpperCase().replaceAll("[^A-Z]", "");
- 입력한 문자열을 대문자로 변환
- String 클래스의 replaceAll()메서드에 정규식을 사용하여 알파벳 대문자를 제외한 모든 문자 제거
- StringBuilder의 reverse() 메서드를 사용하여 입력된 문자열을 뒤집어 원래 문자열과 같은지 비교
import java.util.*;
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));
    }
}'알고리즘 문제풀이' 카테고리의 다른 글
| [알고리즘/인프런]1-10 가장 짧은 문자거리(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) (0) | 2021.05.09 | 
|---|---|
| [알고리즘/인프런]1-9 숫자만 추출(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) (0) | 2021.05.06 | 
| [알고리즘/인프런]1-7 회문문자열(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) (0) | 2021.05.05 | 
| [알고리즘/인프런]1-6 중복문자 제거(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) (0) | 2021.05.05 | 
| [프로그래머스] 124나라의 숫자 java (0) | 2020.12.13 | 
댓글