Blog

공백으로 구분하기 2

날짜 2023-10-22
사용 언어 Java
문제 유형 문자열, Regex
정답률 89%
문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/181868

문제 #

문제 설명 #

단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항 #
  • my_string은 영소문자와 공백으로만 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
  • my_string에는 단어가 하나 이상 존재합니다.

나의 풀이 #

class Solution {
    public String[] solution(String my_string) {      
        // \s : 공백문자, + : 하나라도 있을경우
        String[] answer = my_string.trim().split("\\s+");;
        return answer;
    }
}

다른 사람의 풀이 #

class Solution {
    public String[] solution(String my_string) {
        return my_string.trim().split("[ ]+");
    }
}
class Solution {
    public String[] solution(String my_string) {
        String[] answer = null;

        // 공백이 두 칸 이상 나오지 않도록 아래의 반복문을 수행한다.
        // 각 공백이 한 칸만 나오면 반복문을 빠져나오고 그 공백 하나로 구분한다.
        while (my_string.contains("  ")) {
            my_string = my_string.replace("  ", " ");
        }
        // 공백으로 시작하면 그 공백은 제거해야 한다.
        if (my_string.startsWith(" ")) {
            my_string = my_string.substring(1, my_string.length());
        }
        answer = my_string.split(" ");
        return answer;
    }
}

관련개념 학습 #

String

Regex 정규표현식