String(스트링) 05. 특정 문자 뒤집기
* 사용 언어 : JAVA
* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리
1. 문제
영어 알파벳과 특수문자로 구성된 문장열에서 특수문자는 그 자리 그대로 두고 영어 알파벳만 뒤집어서 출력하기
// 입력
a#b!cde*fg@H
// 출력
H#g!fed*cb@a
2. 풀이
입력받은 문자열을 toCharArray() 메서드를 활용하여 char[]에 담는다.
첫번째 인덱스를 가르키는 lt 변수와 마지막 인덱스를 가르키는 rt 변수를 초기화 한다.
lt와 rt같아 지게되면 같은 인덱스를 가르키게되는 경우로 while문을 사용하여 lt가 rt보다 작을 조건 동안 같이 반복한다.
lt가 가르키는 것이 문자인지 특수문자인지, rt가 가르키는 것이 문자인지 특수문자인지 확인하고 둘다 문자이면 교환하고 둘다 1씩 증가시킨다. 만약 lt가 특수문자이면 바로 1씩 증가시킨다.
String.valueOf() static 함수를 사용하여 char[]배열을 스트링으로 변환하고 반환한다.
3. 코드
public class Main {
public String solution(String str) {
String answer;
char[] chars = str.toCharArray();
int lt = 0;
int rt = str.length() - 1;
while (lt < rt) {
if (!Character.isAlphabetic(chars[lt])) lt++;
else if (!Character.isAlphabetic(chars[rt])) rt--;
else {
char tmp = chars[lt];
chars[lt] = chars[rt];
chars[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(chars);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(T.solution(str));
}
}
4. Keword
- Character
- isAlphabetic()
'Algorithm' 카테고리의 다른 글
[자바 알고리즘 문제풀이] String 07. 회문문자열 (0) | 2022.03.07 |
---|---|
[자바 알고리즘 문제풀이] String 06. 중복 문자 제거 (0) | 2022.03.07 |
[자바 알고리즘 문제풀이] String 04. 단어 뒤집기 (0) | 2022.03.06 |
[자바 알고리즘 문제풀이] String 03. 문장 속 단어 (0) | 2022.03.06 |
[자바 알고리즘 문제풀이] String 02. 대소문자 변환 (0) | 2022.02.17 |