Java

#5 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 특정 문자 뒤집기

kminnnee 2023. 2. 10. 15:57

영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,

 

특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성

.

.

입력:  a#b!GE*T@S      출력 : S#T!EG*b@a


import java.util.Scanner;

// 특수문자가 무작위로 섞여있는 문자열에서 특수문자를 제외한 문자들을 서로 교환하는 문제 //
public class Inflearn5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        String answer = "";
        char[] s = str.toCharArray();
        int left = 0;
        int right = str.length()-1;

        while(left<right) {
            if(!Character.isAlphabetic(s[left])) {     // static메소드 character 메소드사용
                left++;                             // 알파벳이 아니라면 left 인덱스 증가
            } else if (!Character.isAlphabetic(s[right])) {
                right--;                            // 알파벳이 아니라면 right 인덱스 감소
            }
            else {                              // 둘다 알파벳일 경우
                char temp = s[left];
                s[left] = s[right];
                s[right] = temp;
                left ++;
                right--;
            }
        }

        // NullPointerException를 발생방지, toString()은 NullPointerException를 발생시킴
        answer = String.valueOf(s);
        System.out.println(answer);    // answer 출력
    }
}

자주 볼 수 있는 문제라고 생각.. 그러니까 복습을 자주 하자 ! 

 

 

 

 

출처 : https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

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

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com