반응형
/**
* 배열의 데이터를 순서대로 꺼내 조건에 맞게 각 바구니 (스택) 에 분류 한다.
* 조건: 바구니의 합은 20 을 넘을수 없다.
*/
public List<Stack<Integer>> doDo() {
final List<Integer> elements = Arrays.asList(9, 7, 6, 6, 4, 3, 4, 5, 3, 4, 3, 4, 1, 2);
List<Stack<Integer>> result = new ArrayList<>();
Stack<Integer> stack = new Stack<>();
for (Integer el:elements) {
int sum = stack.stream().reduce(0,Integer::sum)+el;
if(sum<=20){
stack.push(el);
}else{
Stack popStack = new Stack();
while(!stack.empty()){
popStack.push(stack.pop());
}
result.add(popStack);
}
}
return result;
}
반응형
'Algorithm' 카테고리의 다른 글
두 개의 스택을 사용하여 큐 구현하기 (1) | 2023.10.15 |
---|---|
중괄호 짝 맞추기 문제 풀이 (0) | 2023.10.15 |
Java - integer converto to bit and bit count (0) | 2018.10.20 |
string split and append space (0) | 2018.10.09 |
checkPrimeNumber (0) | 2018.10.09 |