728x90
반응형
[문제]
영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성
[입력]
첫 줄에는 길이가 100을 넘지 않는 문자열
[출력]
첫 줄에 알파벳만 뒤집힌 문자열을 출력
[입력 예시]
a#b!GE*T@S
[출력 예시]
S#T!EG*b@a
풀이
import java.util.*;
public 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 temp = s[lt];
s[lt] = s[rt];
s[rt] = temp;
lt++;
rt--;
}
}
answer = String.valueOf(s);
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner sc=new Scanner(System.in);
String str = sc.next();
System.out.println(T.solution(str));
}
}
728x90
반응형
'IT 공부 > 알고리즘' 카테고리의 다른 글
[JAVA] 회문 문자열 찾기 - 앞에서 읽어도 뒤에서 읽어도 같은 문자열 (2) | 2024.01.11 |
---|---|
[JAVA] 중복문자 제거하기 (2) | 2024.01.10 |
[JAVA] 단어 거꾸로 출력하기(StringBuilder, 값 교환) (4) | 2023.12.20 |
[JAVA] 문장 속 가장 긴 단어 찾기(indexOf, substring) (4) | 2023.12.19 |
[JAVA] 문자열 대소문자 변환하기 (0) | 2023.12.19 |
댓글