x 사이의 개수

Programmers 코딩 기초 트레이닝

문제 설명

문자열 myString이 주어집니다. myString을 문자 “x”를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 반환하는 solution 함수를 완성해야 합니다.

제한사항

  • 1 ≤ myString의 길이 ≤ 100,000
  • myString은 알파벳 소문자로 이루어진 문자열입니다.

입출력 예

myString result
“oxooxoxxox” [1, 2, 1, 0, 1, 0]
“xabcxdefxghi” [0, 3, 3, 3]

입출력 예 설명

입출력 예 #1
“x”를 기준으로 문자열을 나누면 [“o”, “oo”, “o”, “”, “o”, ““]가 됩니다. 각각의 길이로 배열을 만들면 [1, 2, 1, 0, 1, 0]입니다. 따라서 [1, 2, 1, 0, 1, 0]을 반환합니다.

입출력 예 #2
“x”를 기준으로 문자열을 나누면 [””, “abc”, “def”, “ghi”]가 됩니다. 각각의 길이로 배열을 만들면 [0, 3, 3, 3]입니다. 따라서 [0, 3, 3, 3]을 반환합니다.

String[] split(String regex, int limit)

limit > 0 limit가 0보다 클 경우 limit 개수만큼 split을 진행.

limit == 0 limit가 0일 경우 맨 뒤의 값이 빈값이면 생략.

limit < 0 limit가 0보다 작을 경우 맨 뒤의 빈값에 대해 split을 모두 진행.


public class Solution {

    public static void main(String[] args) {
        String my_string = "oxooxoxxox";
        int[] sol = solution(my_string);
        for (int str : sol) {
            System.out.println(str);
        }
    }

    public static int[] solution(String my_string) {
        String[] strArr = my_string.split("x", -1);
        int[] answer = new int[strArr.length];

        for (int i = 0; i < strArr.length; i++) {
            answer[i] = strArr[i].length();
        }

        return answer;
    }
}


출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

Leave a comment