import java.util.Scanner;
public class Main {
public static String Solution(String str) {
// 입력받은 String을 char[] 배열로 변경
char[] arr = str.toCharArray();
// lt = 문자 시작 index , rt = 문자 끝 index
int lt = 0;
int rt = arr.length -1;
while( lt < rt ){
// 특수기호인 경우, index 변경
if(String.valueOf(arr[lt]).matches("[^a-zA-Z0-9\\s]") ){
lt++;
}else if(String.valueOf(arr[rt]).matches("[^a-zA-Z0-9\\s]")){
rt--;
}else {
// index가 lt, rt가 모두 특수문자가 아닐 때 실행
char tmp = arr[lt];
arr[lt] = arr[rt];
arr[rt] = tmp;
lt ++;
rt --;
}
}
// arr는 char[]이므로 String으로 변환해주는 String.valueOf() 함수 사용
String tmp = String.valueOf(arr);
return tmp;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.next();
System.out.println(Solution(input1));
}
}
import java.util.Scanner;
public class Main {
public static String Solution(String str){
String answer;
// 인자로 입력받은 String을 char[] 배열로 변환
char[] s = str.toCharArray();
int lt = 0;
// rt = right의미, str.length()-1을 해주는 이유?
// ex) good, str.length() = 4이지만, good의 index는 0부터 시작하므로
// -1을 해주지 않으면 존재하지 않는 index까지 검사를 하게 된다.
int rt = str.length()-1;
while( lt < rt ){
// Character 클래스의 isAlphabetic() : 알파벳인지 알려준다.
if(!Character.isAlphabetic(s[lt])){
lt++; // 알파벳이 아닌경우 = 특수기호인 경우, 아무런 처리 x
}else if(!Character.isAlphabetic(s[rt])){
rt--; // 알파벳이 아닌경우 = 특수기호인 경우, 아무런 처리 x
}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){
Scanner in=new Scanner(System.in);
String input1 = in.next();
System.out.println(Solution(input1));
}
}
[^a-zA-Z0-9]
: 공백도 특수 문자로 인식한다.[^a-zA-Z0-9\\s]
: 공백은 특수 문자로 인식하지 않는다.String.valueOf(char)
: char을 String으로 변환
Character.isAlphabetic()
: 알파벳인지 여부를 알려준다