Study with me/프로그래머스 L0 마스터하기
프로그래머스 - L0 x사이의개수
외계나무
2023. 12. 29. 20:41
완전 Brute-force... 되는대로 풀기
class Solution {
public int[] solution(String myString) {
int[] answer;
if(myString.endsWith("x")) {
myString+="0";
String[] str = myString.split("x");
answer = new int[str.length];
for(int i=0; i<str.length; i++) {
answer[i] = str[i].length();
}
answer[answer.length-1] = 0;
}
else {
String[] str = myString.split("x");
answer = new int[str.length];
for(int i=0; i<str.length; i++) {
answer[i] = str[i].length();
}
}
return answer;
}
}
조금 더 머리 쓴 버전...
class Solution {
public int[] solution(String myString) {
myString = "0"+myString+"0";
String[] str = myString.split("x");
int[] answer = new int[str.length];
for(int i=0; i<answer.length; i++) {
answer[i] = str[i].length();
}
answer[0]--;
answer[answer.length-1]--;
return answer;
}
}
stream 사용한 타인의 코드.
import java.util.*;
class Solution {
public int[] solution(String myString) {
return Arrays.stream(myString.split("x", myString.length())).mapToInt(s -> s.length()).toArray();
}
}
split() 사용에서 두번째 파라미터로 int limit을 지정할 수 있다는 것을 깜박한... (limit 이하의 개수로 분리해줌)
사실 mapToInt도 잊어버리고 map으로 했다가 한 번 실패했었음 ㅋㅋㅋ