유리쯔의일상 2023. 9. 24. 20:20
반응형
 

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

 

 

 

 

 

 

 

문제 해결고민

1. 아스키코드를 이용해서 특수문자랑 영어를 구별하는 게 좋을까?
2. revers를 써도 괜찮을까?
3. 아스키코드 외에 알파벳여부를 확인하는 메소드는 없을까? 
4. char[] 배열로 진행 후 인덱스 맞교환은 어떻게 해야 할까

 

생각보다 고민을 많이 했다

사실 빨리 끝낼 줄 알았는데 너무 오래 걸렸다.

결국엔 혼자 풀지 못하여 선생님의 풀이 과정을 보고 따라 했다.

내용을 이해하고 좀 더 고민을 더 해볼걸 이라며 아쉬워했다

 

 

 

 

 

 

 

 

 

 

 

선생님의 풀이과정

1. 문자 배열을 만든다
2. lt와 rt를 사용한다 / Lt 시작하는 인덱스번호, rt는 끝나는 인덱스 
3. lt와 rt가 모두 다 알파벳일 경우 스왑 한다
4. 스왑  후 rt와 lt는 증가
5. 그다음 인덱스에 특문이 있는 경우 스왑 없이 바로 증가

 

import java.util.*;  
  
class Main {  
    public String solution(String str) {  
        String answer;  
        char[] substr = str.toCharArray();  
        int lt = 0, rt = str.length() - 1;  
        while (lt < rt) {  
            if (!Character.isAlphabetic(substr[lt])) {    // 알파벳이 아닐 때  
                lt++;  
            } else if (!Character.isAlphabetic(substr[rt])) {  // 알파벳이 아닐 때  
                rt--;  
            } else {  
                char tmp = substr[lt];  
                substr[lt] = substr[rt];  
                substr[rt] = tmp;  
                lt++;  
                rt--;  
            }  
        }  
        answer = String.valueOf(substr);  
        return answer;  
    }  
  
    public static void main(String[] args) {  
        Main T = new Main();  
        Scanner in = new Scanner(System.in);  
        String str = in.next();  
        System.out.println(T.solution(str));  
    }  
}  
// #a!bGE*@sT

 

 

 

 

 

 

 

 

 

 

. isAlphabetic(매개변수)

매개변수의 값이 문자인지 여부를 판단하여 True , False를 리턴한다.
문자여부 확인 시 예제
Character.isAlphabetic() : 알파벳 여부확인  
Character.isUpperCase() : 대문자 확인 
Character.isLowerCase() : 소문자 확인
Character.isDigit() : 숫자 확인

 

 

 

 

 

 

 

 

 

반응형