본문 바로가기
알고리즘

[알고리즘/java] 특정 문자만 뒤집기를 할 때

by drCode 2021. 9. 6.
728x90
반응형
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
반응형

댓글