package task9.stack;
import java.util.*;
public class QuickMinStack<T extends Comparable<T>> {
private List<T> magicList = new ArrayList<>();
private Stack<T> dataStack = new Stack<>();
public void push(T data) {
dataStack.push(data);
magicList.add(data);
magicList.sort(Comparator.naturalOrder());
}
public T pop() {
T result = dataStack.pop();
magicList.remove(result);
return result;
}
public T findMin() {
T minResult = magicList.get(0);
dataStack.remove(minResult); // sad
return minResult;
}
}