섹션 1. String 문자열 : 특정 문자 뒤집기
알파벳과 특수문자로 구성된 문자열이 주어지면 알파벳만 뒤집는다.
💻 강의 코드
class Algorithm {
public String solution(String str){
String answer;
char[] s = str.toCharArray();
int lt = 0, rt = str.length() - 1;
while(lt < rt){
if(!Character.isAlphabetic(s[lt])){
lt++;
}else if(!Character.isAlphabetic(s[rt])){
rt--;
}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){
Algorithm T = new Algorithm();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
💻 IntelliJ - Service, Test
@Service
public class StringAlgorithmService{
public String reverseWord3(String str) {
String answer = "";
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--;
}
}
answer = String.valueOf(c);
return answer;
}
}
@Test
@DisplayName("특정 문자 뒤집기")
void reverseWord2Test() {
String str = "f#e^DC&B!a";
String answer = stringAlgorithmService.reverseWord3(str);
System.out.println("result ====> " + answer);
}
💻 결과

💻 NOTE
Character.isAlphabetic(c) : 문자 c가 알파벳인지 확인
String.valuOf(s) : 문자 배열을 String으로 변환
출처 : 인프런 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비