말랑한 하루
[Programmers] 롤케이크 자르기 (Lv 2, Java) 본문
반응형
[ 학습 내용 ]
※ Set
Set<type> set = new HashSet<>();
//type : Integer, String, pair<type, type> ... etc
useage : add addAll clear contains
isEmpty remove size toArray
others : containsAll equals hashCode
iterator removeAll retainAll sliterator
.range(startIndex, endIndex)
.rangeClosed(startIndex, endIndex)
.forEach()
.reduce()
.filter(index -> fs[i] == se[i]) // 범위 내 요소 중 조건에 부합하는 요소 반환
.sum() // 결과 내 요소 합계
.count() // 결과 내 요소 갯수
.sorted((o1, o2) -> o1 - o2) // 결과 내 요소 정렬
.limit(maxSize) // maxSize 보다 길지않은 요소로 반환
[ 소스 코드 ]
import java.util.*;
import java.util.stream.*;
class Solution {
public int solution(int[] topping) {
int answer = 0;
int fs[] = new int[topping.length];
int se[] = new int[topping.length];
Set<Integer> set1 = new HashSet<>();
Set<Integer> set2 = new HashSet<>();
for(int i=0; i<topping.length; i++) {
int idx = topping.length - i - 1;
set1.add(topping[i]);
set2.add(topping[idx]);
fs[i] = set1.size();
se[idx] = set2.size();
}
return (int)IntStream.range(0, topping.length - 1).filter(idx -> fs[idx] == se[idx+1]).count();
}
}
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Programmers] 삼총사 (Lv , Java) (0) | 2022.10.25 |
---|---|
[Programmers] 롤케이크 자르기 (Lv 2, Python) (0) | 2022.10.22 |
[Programmers] 콜라 문제 (Lv 1, Java) (0) | 2022.10.22 |
[Programmers] 콜라 문제 (Lv 1, Python) (0) | 2022.10.22 |
[Programmers] 징검다리 (Lv 3, JavaScript) (0) | 2022.09.22 |
Comments