JAVA 코딩테스트 대비-5. 특정 문자 뒤집기(toCharArray())

리만·2023년 11월 24일

섹션 1. String 문자열 : 특정 문자 뒤집기

알파벳과 특수문자로 구성된 문자열이 주어지면 알파벳만 뒤집는다.

💻 강의 코드

class Algorithm {
		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){
		Algorithm T = new Algorithm();
		Scanner kb = new Scanner(System.in);
		
        String str = kb.next();
        System.out.println(T.solution(str));
	}
}

💻 IntelliJ - Service, Test

@Service
public class StringAlgorithmService{
	 public String reverseWord3(String str) {
        String answer = "";
        char[] c = str.toCharArray();
        int lt = 0, rt = str.length() - 1;

        while (lt < rt) {
            if (!Character.isAlphabetic(c[lt])) {
                lt++;
            } else if (!Character.isAlphabetic(c[rt])) {
                rt--;
            } else {
                char tmp = c[lt];
                c[lt] = c[rt];
                c[rt] = tmp;
                lt++;
                rt--;
            }
        }
        answer = String.valueOf(c);
        return answer;
    }
}
@Test
@DisplayName("특정 문자 뒤집기")
    void reverseWord2Test() {
        String str = "f#e^DC&B!a";

        String answer = stringAlgorithmService.reverseWord3(str);

        System.out.println("result ====> " + answer);
    }

💻 결과

💻 NOTE

  • Character.isAlphabetic(c) : 문자 c가 알파벳인지 확인
  • String.valuOf(s) : 문자 배열을 String으로 변환

출처 : 인프런 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

0개의 댓글