728x90

https://school.programmers.co.kr/learn/courses/30/lessons/181862

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제)임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다.  예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다.  문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.  단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.

 

 

 

 

 

 

풀이)

class Solution {
    public String[] solution(String myStr) {
        String[] answer = {};
        
        myStr = myStr.replaceAll("\\s+", "");
        myStr = myStr.replaceAll("[abc]"," ");
        myStr = myStr.replaceAll("\\s+", "a");

        if(myStr.length()==1&&myStr.charAt(0)=='a'){
            myStr = "EMPTYa";
        }else if(myStr.indexOf("a")==0){
            myStr = myStr.substring(1);
        } else if (myStr.indexOf("a")==myStr.length()-1) {
            myStr = myStr.substring(0,myStr.length()-2);
        }
        answer = myStr.split("a");
        
        return answer;
    }
}

여기서도 똑같이 문자열 처리과정에서 주의 해야될게 있다.

1. 문자열 앞뒤로 공백이 있는지 확인하기

2. 문자열 중간에 1개 이상의 공백이 있는지 확인하기

3. 문자열이 a,b,c중에서 하나로 시작하는지

4.문자열 마지막이 a,b,c중 하나로 끝나는지

5.문자열이 a,b,c로만 이루어져있다면 EMPTY라는 문자는 어떻게 처리할지

요 5가지를 주의 해서 푼다면 문제 푸는데 어려움은 따로 없을 것이다.

728x90