[알고리즘] 01.String / 05.특정 문자 뒤집기

less than 1 minute read

특정 문자 뒤집기

설명

영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.

입력

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

출력

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

예시 입력 1

a#b!GE*T@S

예시 출력 1

S#T!EG*b@a

코드

import java.util.Scanner;

public class JC_0105 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		JC_0105 T = new JC_0105();
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		System.out.println(T.solution(str));

	}

	public String solution(String str) {
		String answer;
		//a#b!GE*T@S
		char[] s = str.toCharArray();
		int lt = 0, rt = str.length()-1;

		while(lt < rt) {
			if(!(s[lt]>=65 && s[lt]<=122)) { //알파벳이 아니면
				lt++;
			}else if(!(s[rt]>=65 && s[rt]<=122)) { //알파벳이아니면
				rt--;
			}else {
				char tmp = s[lt];
				s[lt] = s[rt];
				s[rt] = tmp;
				lt++;
				rt--;
			}
		}

		/*while(lt < rt) {
			if(!Character.isAlphabetic(s[lt])) {
				lt++;
			}else if(!Character.isAlphabetic(s[rt])) {
				rt++;
			}
		}*/

		//answer = new String(s);
		answer = String.valueOf(s);
		return answer;
	}

}