본문으로 바로가기
728x90
반응형

▷ 문제

영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,

특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.

* 입력

첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.

* 출력

첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.

▷ 입력 예시

a#b!GE*T@S

▷ 출력 예시

S#T!EG*b@a

▷ 풀이

import java.util.Scanner;

public class Main {
    public String solution(String str){
        String answer = "";
        char[] cArr = str.toCharArray();
        int lt = 0, rt = cArr.length-1;
        while (lt < rt) {
            if(!Character.isAlphabetic(cArr[lt])){
                lt++;
            } else if(!Character.isAlphabetic(cArr[rt])){
                rt--;
            } else{
                char temp = cArr[rt];
                cArr[rt] = cArr[lt];
                cArr[lt] = temp;
                lt++;
                rt--;
            }
        }
        answer = String.valueOf(cArr);

        return answer;
    }

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

        System.out.println(main.solution(str));
    }
}

 

▷ 핵심 키워드

1. Char[]형 배열을 String,valueOf()의 인자로 넣어주면 문자열로 변환됩니다.

반응형