현재
5. 특정 문자 뒤집기(Character.isAlphabetic()) 본문
설명
특수문자를 제외한 알파벳을 뒤집어라.
예시 입력 1
a#b!GE*T@S
예시 출력 1
S#T!EG*b@a
<힌트 API>
더보기
Character.isAlphabetic() / String.valueOf(s)
<자체풀이>
더보기
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
char inputList[] = sc.next().toCharArray();
int lt = 0;
int rt = inputList.length-1;
while(lt < rt){
if((inputList[lt] >= 65 && inputList[lt] <= 90) || (inputList[lt] >= 97 && inputList[lt] <= 122 )){
if((inputList[rt] >= 65 && inputList[rt] <= 90) || (inputList[rt] >= 97 && inputList[rt] <= 122 )){
char temp = inputList[lt];
inputList[lt] = inputList[rt];
inputList[rt] = temp;
lt++;
rt--;
} else {
rt--;
}
} else {
lt++;
}
}
for( char e : inputList ){
System.out.print(e);
}
// a#b!GE*T@S
sc.close();
}
}
<정답풀이>
더보기
import java.util.*;
class Main {
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){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str=kb.next();
System.out.println(T.solution(str));
}
}
'알고리즘 > 기타알고리즘문제' 카테고리의 다른 글
| 7. 회문 문자열 (0) | 2024.04.03 |
|---|---|
| 6. 중복문자제거(indexOf()) (0) | 2024.04.03 |
| 9. 숫자만 추출(Character.isDigit(char)) (1) | 2024.04.01 |
| 4.단어 뒤집기(StringBuilder, reverse, valueOf()) (0) | 2024.03.25 |
| 3.문장 속 단어(Split,substring) (0) | 2024.03.19 |