특정 문자만 뒤집기

최준호·2021년 8월 3일
0

알고리즘 강의

목록 보기
2/79

설명

저번에 풀었던 문제에서 뒤집기 알고리즘을 확인했었다.
거꾸로 출력하기
이 알고리즘을 활용하여 특정 문자만 뒤집는 문제를 풀어보자.

문제는 영어단어와 특수문자로 이루어진 문자열이 입력되었을 때 알파벳일 경우 현재 위치에서 반대 위치로 뒤집고 특수문자는 그대로 고정시킨다는 개념이다.

코드

public class ReverseSpecificWord {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        String input = in.next();

        char[] chars = input.toCharArray();
        int charLeng = chars.length;
        int start = 0;
        int end = charLeng-1;
        while(start<end){
            char word1 = chars[start];
            char word2 = chars[end];
            String check = "^[a-zA-Z]*$";
            if(!Pattern.matches(check, word1+"")){
                start++;
            }else if(!Pattern.matches(check, word2+"")){
                end--;
            }else{
                char temp = chars[start];
                chars[start] = chars[end];
                chars[end] = temp;
                start++;
                end--;
            }

        }

        System.out.println(new String(chars));
    }
}

저번에 사용한 알고리즘에 java 정규식을 더하여 문제를 풀어보았다. 정규식으로 체크하는 것 말고도

Character.isAlphabetic()

이라는 메서드를 통해 알파벳인지 확인할 수도 있는데. 알파벳 문제만 풀진 않을거니까... 정규식도 알아두면 좋을 것 같다. 정규식도 알고보면 간단한건 금방 만들 수 있으니까 모른다면 조금 공부해보길 권장한다.

뒤집기 알고리즘 심화문제

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글