import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.trim().split("x");
for(int i=0; i<answer.length; i++) {
answer[i] = answer[i].replaceAll(" ", "").trim();
}
answer = Arrays.stream(answer).filter(str -> str.length()>=1).toArray(String[]::new);
Arrays.sort(answer);
return answer;
}
}
자, 그럼 여기 오기까지 있었던 고난들을 소개한다...
첫번째 고난 : Arrays.sort()의 결과물이 배열이 아니라 void라는 사실을 잊어버림.
` /Solution.java:7: error: incompatible types: void cannot be converted to String[] `를 마주하고 으잉..? 함.
import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.split("x");
return Arrays.sort(answer);
}
}
→ return 전에 sort 하고 answer을 반환하는 것으로 해결.
import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.split("x");
Arrays.sort(answer);
return answer;
}
}
두번째 고난 : 테스트 케이스 예시는 통과했는데 실제 실행에서 테스트 케이스 11개 모두 에러.
공백인가 싶어 공백제거를 다 했는데도 똑같은 결과에 OTL...
import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.trim().split("x");
for(int i=0; i<answer.length; i++) {
answer[i] = answer[i].trim();
}
Arrays.sort(answer);
return answer;
}
}
split의 특성상 구분자 사이에 아무것도 없으면 공백 배열을 만들기 때문에 생긴 문제였다. ""가 배열 요소로 들어가서...ㅎ
→ split의 구분자를 정규식으로 넣어 x가 여러개 연속으로 있어도 하나의 구분자로 인식하도록 해서 해결.
import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.trim().split("[x]+");
for(int i=0; i<answer.length; i++) {
answer[i] = answer[i].replaceAll(" ", "").trim();
}
Arrays.sort(answer);
return answer;
}
}
세번째 고난 : 근데 여전히 테스트 2번, 10번에서 에러가 뜸... 왜..?
몰라 나도... 그래서 그냥 다른 방식을 써보기로 함.
→ 배열 요소중 길이가 1 이상이 아닌 건 걸러내는 filter 통해 해결
import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.trim().split("x");
for(int i=0; i<answer.length; i++) {
answer[i] = answer[i].replaceAll(" ", "").trim();
}
answer = Arrays.stream(answer).filter(str -> str.length()>=1).toArray(String[]::new);
Arrays.sort(answer);
return answer;
}
}
'Study with me > 프로그래머스 L0 마스터하기' 카테고리의 다른 글
프로그래머스 - L0 숫자찾기 (0) | 2024.01.12 |
---|---|
프로그래머스 - L0 주사위게임2 (1) | 2024.01.11 |
프로그래머스 - L0 외계행성의나이 (0) | 2024.01.09 |
프로그래머스 - L0 문자리스트를문자열로반환하기 // join String (1) | 2024.01.08 |
프로그래머스 - L0 배열회전시키기 // 배열 복사 (1) | 2024.01.07 |