Algorithm - 유효한 팰린드룸

공부하는 개발자

about 오늘도 뚝딱🔨 뚝딱 하는 주니어 개발자👩🏻‍💻

북마크

고정글

최근 글

Algorithm - 유효한 팰린드룸

date
read
반응형

👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇

 

 

오늘의 문제

 

 


 

문제풀이 고민

1. 소문자와 대문자 통합시키기 -> 대문자로 변환
2. 문자열 내 숫자와 특수문자 삭제
3. i의 문자가 바뀔때 마다 마지막 문자와 같은지 비교
4. i의 문자와 끝 문자와 같을 경우 flag에 true를 넣어주고 
5. 틀릴 경우에는 false 를 반환시켜준다. 그리고 종료
6. 계속 같은 경우 문자열의 중간 인덱스까지 비교하고 모두다 true일 경우 결론은 true 가 되게끔 처리함

 

 


 

나의 풀이

import java.util.Scanner;  
class Main {  
    public String solution(String str) {  
        String answer = str.toUpperCase();  
        String newAnswer = answer.replaceAll("[^a-zA-Z$]", "");  
        boolean flag = false;  
        int rtPoint = newAnswer.length() - 1;  
        for (int i = 0; i < str.length(); i++) {  
            char tmp = newAnswer.charAt(i);  
            if (i == newAnswer.length() / 2) {  
                break;  
            }  
            if (tmp == newAnswer.charAt(rtPoint)) {  
                flag = true;  
                rtPoint--;  
            } else {  
                flag = false;  
                break;  
            }  
        }  
        if (flag == false) answer = "NO";  
        else if (flag == true) answer = "YES";  
        return answer;  
    }  
  
    public static void main(String[] args) {  
        Main T = new Main();  
        Scanner in = new Scanner(System.in);  
        String str = in.nextLine();  
        System.out.println(T.solution(str));  
    }  
}

 

반응형

'📍 Lαɴɢυαɢe > Alɢorιтнм' 카테고리의 다른 글

Algorithm - 문자 거리  (1) 2023.11.01
Algorithm - 숫자만 추출  (1) 2023.10.20
Algorithm - 회문 문자열  (0) 2023.10.18
Algorithm - 중복문자제거  (1) 2023.10.10
Algorithm - 특정 문자 뒤집기  (0) 2023.09.24