현재

5. 특정 문자 뒤집기(Character.isAlphabetic()) 본문

알고리즘/기타알고리즘문제

5. 특정 문자 뒤집기(Character.isAlphabetic())

AAAge 2024. 4. 3. 19:54

설명

특수문자를 제외한 알파벳을 뒤집어라.

예시 입력 1 

a#b!GE*T@S

예시 출력 1

S#T!EG*b@a

 

<힌트 API>

더보기

Character.isAlphabetic() / String.valueOf(s)

 

<자체풀이>

더보기
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);
        char inputList[] = sc.next().toCharArray();
        int lt = 0;
        int rt = inputList.length-1;
           
        while(lt < rt){
            if((inputList[lt] >= 65 && inputList[lt] <= 90) || (inputList[lt] >= 97 && inputList[lt] <= 122 )){
                if((inputList[rt] >= 65 && inputList[rt] <= 90) || (inputList[rt] >= 97 && inputList[rt] <= 122 )){
                    char temp = inputList[lt];
                    inputList[lt] = inputList[rt];
                    inputList[rt] = temp;
                    lt++;
                    rt--;
                } else {
                    rt--;
                }
            } else {
                lt++;
            }
        }
        for( char e : inputList ){
            System.out.print(e);
        }

        // a#b!GE*T@S

        sc.close();
    }
}

<정답풀이>

더보기
import java.util.*;
class Main {    
    public String solution(String str){
        String answer;
        char[] s=str.toCharArray();
        int lt=0, rt=str.length()-1;
        while(lt<rt){
            if(!Character.isAlphabetic(s[lt])) lt++;
            else if(!Character.isAlphabetic(s[rt])) rt--;
            else{
                char tmp=s[lt];
                s[lt]=s[rt];
                s[rt]=tmp;
                lt++;
                rt--;
            }
        }
        answer=String.valueOf(s);
        return answer;
    }

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