코린이의 소소한 공부노트

[프로그래머스/Lv.0] x 사이의 개수 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] x 사이의 개수

무지맘 2023. 5. 25. 11:27

1. Input, Output, Example

- myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 반환

 

2. Constraint

1) 1 myString의 길이 100,000

2) myString은 알파벳 소문자로 이루어진 문자열이다.

 

3. Code

1) 첫 코드(2023/05/25)

import java.util.*;
class Solution {
    public int[] solution(String myString) {
        List<Integer> list = new ArrayList<>();
        for(int i=0 ; i<myString.length() ; i++){
            int j = i;
            while(j<myString.length() && myString.charAt(j)!='x') j++;
            list.add(j-i);
            i = j;
        }
        if(myString.charAt(myString.length()-1)=='x')
            list.add(0);
        int[] ans = new int[list.size()];
        for(int i=0 ; i<ans.length ; i++)
            ans[i] = list.get(i);
        return ans;
    }
}

 

2) split()의 -1에 의문을 품고 다시 해본 코드(2023/05/25)

import java.util.*;
class Solution {
    public int[] solution(String myString) {
        String[] str = myString.split("x",-1);
        int[] ans = new int[str.length];
        for(int i=0 ; i<ans.length ; i++)
            ans[i] = str[i].length();        
        return ans;
    }
}

- 1번보다 좋은 성능을 지닌 코드다.