알고리즘
[알고리즘/java] 특정 문자만 뒤집기를 할 때
drCode
2021. 9. 6. 12:53
728x90
반응형
영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성할 때,
이번에 새롭게 알게 된 메서드를 사용하여 풀면 좀 더 간단하고 쉽게 풀 수 있다.
char[] s = str.toCharArray();
// 문자열을 쪼개서 char 배열로 만들어주는 메서드
반응형
Character.isAlphabetic(ch)
// 해당 문자가 알파벳인지 확인해주는 메서드
다음 입력이 주어질 때,
a#b!GE*T@S
다음과 같이 출력이 되어야 한다.
S#T!EG*b@a
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Main m = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(m.solution(str));
}
public static String solution(String str) {
String answer = "";
char[] s = str.toCharArray();
int sf = 0, sl = str.length() - 1;
while(sf < sl) {
if(!Character.isAlphabetic(s[sf])) sf++;
else if(!Character.isAlphabetic(s[sl])) sl--;
else {
char temp = s[sf];
s[sf] = s[sl];
s[sl] = temp;
sf++;
sl--;
}
}
for (int i = 0; i < s.length; i++) {
answer += s[i];
}
return answer;
}
}
728x90
반응형