문제
알파벳과 특수문자가 섞인 문자열에서 알파벳끼리만 순서를 뒤집고,
특수문자는 뒤집지 않게 하세요
입력
a#b!GE*T@S
출력
S#T!EG*b@a
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Main main = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(main.solution(str));
}
public String solution(String str) {
char[] c = str.toCharArray();
int lt = 0, rt = str.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 s = String.valueOf(c);
return s;
}
}
String.toCharArray()
: 스트링을 char형의 배열로 반환
Character.isAlphabetic(char c)
: c가 알파벳인지 판별하여 boolean형태로 반환
String.valueOf(char[] c)
: 배열형태의 char를 스트링으로 반환
참고
이 글은 인프런 강의 김태원님의
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비를 바탕으로 쓴 글입니다.
반응형