본문 바로가기
Algorithm

List and Stack

by ByteBridge 2018. 10. 20.
반응형


/**
* 배열의 데이터를 순서대로 꺼내 조건에 맞게 각 바구니 (스택) 에 분류 한다.
* 조건: 바구니의 합은 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