
* 문제풀이
class Solution {
public int[] solution(String myString) {
String[] arr = myString.split("x", -1);
int[] answer = new int[arr.length];
for(int i = 0; i < arr.length; i++){
answer[i] = arr[i].length();
}
return answer;
}
}
======================================================================
class Solution {
public int[] solution(String myString) {
String[] arr = myString.split("x");
int[] answer = new int[arr.length];
for(int i = 0; i < arr.length; i++){
answer[i] = arr[i].length();
}
return answer;
}
}

처음에 위 코드처럼 작성했는데 테스트 1에서 다른 결과값이 나왔다.
아무리 생각해도 모르겠어서 검색해보니 split()메서드의 두번째 인자에 -1을 넣어줘야 했다.
왜?
split() 메서드의 기본 동작 >>끝에 생긴 빈 문자열은 자동으로 제거<<
그러므로 split("x")로 작성할 경우 [1,2,1,0,1]이 출력된다. 맨 뒤의 x는 제거되니까!
split("x", -1)에서 -1은 끝에 있는 빈 문자열도 포함시키기 위함이다.
[1,2,1,0,1,0]이 출력됨.
* split() 설명
* 프로그래머스 다른 풀이
import java.util.ArrayList;
class Solution {
public int[] solution(String myString) {
myString += "x";
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0, cnt = 0; i < myString.length(); i++){
if (myString.charAt(i) != 'x'){
cnt++;
} else {
arr.add(cnt);
cnt = 0;
}
}
return arr.stream().mapToInt(Integer::intValue).toArray();
}
}
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;
}
}
class Solution {
public int[] solution(String myString) {
String[] split = (myString + " ").split("x");
int[] answer = new int[split.length];
for (int i = 0; i < answer.length; i++) {
answer[i] = split[i].replace(" ", "").length();
}
return answer;
}
}
'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글
| [프로그래머스/java/Lv.0] 9로 나눈 나머지 (0) | 2025.04.22 |
|---|---|
| [프로그래머스/java/Lv.0] 순서 바꾸기 (0) | 2025.04.21 |
| [프로그래머스/java/Lv.0] 문자열 정렬하기 (2) (0) | 2025.04.15 |
| [프로그래머스/java/Lv.0] 암호 해독 (0) | 2025.04.10 |
| [프로그래머스/java/Lv.0] 문자열 정렬하기 (1) (0) | 2025.04.03 |