코딩테스트 풀이/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번보다 좋은 성능을 지닌 코드다.