문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
풀이1)
class Solution {
public String[] solution(String[] strArr) {
//answer 배열길이 계산 선행
int sum = 0;
for(int i=0;i<strArr.length;i++){
if(strArr[i].indexOf("ad")!=-1){
sum++;
}
}
//"ad" 포함안한 문자열 저장
int j=0;
String[] answer = new String[strArr.length-sum];
for(int i=0;i<strArr.length;i++){
if(strArr[i].indexOf("ad")==-1){
answer[j]=strArr[i];
j++;
}
}
return answer;
}
}
풀이2) Stream 등
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public String[] solution(String[] strArr) {
List<String> list = Arrays.stream(strArr).filter(m -> !m.contains("ad")).collect(Collectors.toList());
String[] answer = new String[list.size()];
list.toArray(answer);
return answer;
}
}
Stream
필터링(filtering) 및 맵핑(mapping) 등 원하는 결과를 만들어냄
생성하기
Name<변수타입> name = Arrays.stream(변수이름)
필터링
.filter(name -> name.contains("포함하는문자열"));
collect(Collectors.toList())
수정가능한 List로 받기 위해서는 stream에서 최종연산에 toList가 아니라 collect(Collectors.toList())를 사용해야한다
'programmers' 카테고리의 다른 글
[JAVA] 2차원으로 만들기 다차원배열 (0) | 2024.03.13 |
---|---|
[JAVA] 배열 회전시키기 (0) | 2024.03.13 |
[JAVA] 옹알이(1) (0) | 2024.03.12 |
[JAVA] ★ 진료순서 정하기 (1) | 2024.03.12 |
[JAVA] ★ 구슬을 나누는 경우의 수 (0) | 2024.03.12 |