코딩테스트

[문자열] 5. 특정 문자 뒤집기

개발하는지호 2023. 11. 29. 20:41
5. 특정 문자 뒤집기
 

설명

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

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

입력

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

출력

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

예시 입력 1 

a#b!GE*T@S

예시 출력 1

S#T!EG*b@a
 

 

<<풀이>>

 

이 문제는 이전 문제와 비슷하다. lt,rt사용

하지만 그것보다는 조금 논리적인 사고가 필요하다. 

if문과 !Character.isAlphabetic 을 이용한다. 

더 익숙해 지도록 하자!!

import java.util.Scanner;

// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {
    public String solution(String str) {
        char[] c = str.toCharArray();
        int lt = 0;
        int rt = c.length - 1;
        while (lt < rt) {
            if (!Character.isAlphabetic(c[lt])) lt++;
            else if(!Character.isAlphabetic(c[rt])) rt--;
            else {
                char tmp = c[lt];
                c[lt] = c[rt];
                c[rt] = tmp;
                lt++;
                rt--;
            }

        }
        String answer = String.valueOf(c);
        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));
    }
}