문제
설명
영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.
입력
첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.
출력
첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.
코드
import java.util.ArrayList;
import java.util.Scanner;
public class Main1_5 {
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) {
Main1_5 T = new Main1_5();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(T.Solution(str));
}
}
결과
알게된 점
1. Character.isAlphabetic()
https://rookie-programmer.tistory.com/16
'Algorithm > Inflearn' 카테고리의 다른 글
[Inflearn] 자바 알고리즘 문제풀이 #01-07 7. 회문 문자열 (0) | 2022.10.27 |
---|---|
[Inflearn] 자바 알고리즘 문제풀이 #01-06 6. 중복문자제거 (0) | 2022.10.26 |
[Inflearn] 자바 알고리즘 문제풀이 #01-04 4. 단어 뒤집기 (0) | 2022.10.12 |
[Inflearn] 자바 알고리즘 문제풀이 #01-03 3. 문장 속 단어 (0) | 2022.10.05 |
[Inflearn] 자바 알고리즘 문제풀이 #01-02 2. 대소문자 변환 (0) | 2022.10.04 |