✅Character.isAlphabetic
package 섹션1_String;
import java.io.*;
public class 특정문자뒤집기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] arr= br.readLine().toCharArray();
int l=0;
int r=arr.length-1;
while(l<r){
if(Character.isAlphabetic(arr[l]) && Character.isAlphabetic(arr[r])){
char temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
l++;
r--;
} else if (Character.isAlphabetic(arr[l])) {
r--;
} else if(Character.isAlphabetic(arr[r])){
l++;
}else{
l++;
r--;
}
}
bw.write(String.valueOf(arr));
bw.flush();
br.close();
bw.close();
}
}
📌중요한 코드
if~else if~else 구조에서 "어떤 조건으로 구분"을 해야 식을 더 간단하게 작성할 수 있을지 고민해보기
while(l<r){
if(!Character.isAlphabetic(arr[l])){ // l-> 특수문자인 경우
l++;
} else if(!Character.isAlphabetic(arr[r])){ // r -> 특수문자인 경우
r--;
}else{
char temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
l++;
r--;
}
}
'알고리즘 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
1-7 회문 문자열 (0) | 2025.05.01 |
---|---|
1-6 중복 문자 제거 (1) | 2025.04.09 |
1-3 문장 속 가장 긴 단어 (0) | 2025.04.08 |
1-2 대소문자 변환 (1) | 2025.04.07 |
1-1 문자 찾기 (0) | 2025.04.07 |