본문 바로가기
코딩테스트/자바 Level 0

[Java] x 사이의 개수

by onggury 2023. 7. 24.

문제

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

 

 

제한사항

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

 

import java.util.ArrayList;

class Solution {

    public int[] solution(String myString) {
        ArrayList<Integer> list = new ArrayList<>();
        String[] tmp = myString.split("x");
        for (int i = 0; i < tmp.length; i++) {
            list.add(tmp[i].length());
        }
        if(myString.endsWith("x")) {
            list.add(0);
        }
        
        int[] answer = new int[list.size()];
        for (int i = 0; i < answer.length; i++) {
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}

x를 기준으로 split 할 경우 마지막 x의 경우가 연산이 되지 않는다. 그래서 주어진 문자열의 마지막이 x인지를 판단해서 그렇다면 0을 추가해준다.(x를 기준으로 나눴을 때 빈 문자열이면 길이가 0이기 때문이다.)

 

 

출처

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