728x90

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

 

프로그래머스

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

programmers.co.kr

문제)문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.  단, 빈 문자열은 반환할 배열에 넣지 않습니다.

 

 

 

 

 

 

풀이)

import java.util.*;
class Solution {
    public String[] solution(String myString) {
        String[] answer = {};
        
        myString = myString.trim();
        myString = myString.replaceAll("\\s+", "");
        myString = myString.replaceAll("x", " ");
        myString = myString.replaceAll("\\s+", "x");

        if(myString.indexOf("x")==0){
            myString = myString.substring(1);
        }else if (myString.indexOf("x")==myString.length()-1){
            myString = myString.substring(0, myString.length()-2);
        }

        answer = myString.split("x");

        Arrays.sort(answer);
        
        return answer;
    }
}

이 문제는 여러가지의 반례들을 생각해야 된다.

문제가 틀렸을 경우를 생각해야되는경우

1.문자열 앞뒤에 공백이 있는 경우

2.문자열 중간에 하나이상의 공백이 존재할 경우

3.문자열 시작이 x로 시작할경우

4.문자열 끝이 x로 끝나는 경우

5.문자열의 시작과 끝이 모두 x로 이루어진 경우

요 5가지를 생각하고 문제를 푼다면 문제 없을 것이다. 

728x90