x 사이의 개수
문제 설명
문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ myString의 길이 ≤ 100,000
입출력 예
myString | result |
"oxooxoxxox" | [1, 2, 1, 0, 1, 0] |
"xabcxdefxghi" | [0, 3, 3, 3] |
import java.util.*;
class Solution {
public int[] solution(String myString) {
String[] parts = myString.split("x", -1);
int answerlength = parts.length;
int[] answer = new int[answerlength];
for(int i=0; i<parts.length; i++) {
answer[i] = parts[i].length();
}
return answer;
}
}
로직을 짠 뒤 특정 메서드나 저 위의 -1같은 특이 사항을 모르겠으면 gpt한테 물어서 풀고 있다.
다른 사람의 풀이를 봤을 때
import java.util.Arrays;
class Solution {
public int[] solution(String myString) {
return Arrays.stream(myString.split("x", myString.length()))
.mapToInt(x -> x.length())
.toArray();
}
}
이런 게 있던데 myString.length()처럼 양수인 값이 들어가면 split된 후 리턴되는 값에서 맨 마지막의 ""은 출력이 안 될텐데
프로그래머스에서 코드 실행을 하면 출력이 된다...
이 부분은 더는 모르겠다.
import java.util.*;
class Solution {
public Integer[] solution(String myString) {
return Arrays.stream(myString.split("x", -1)).map(String::length).toArray(Integer[]::new);
}
}
이건 좀 기발했다...