package Stack
func dailyTemperatures(temperatures []int) []int {
size := len(temperatures)
result := make([]int, size)
stack := new(Stack[int])
for i := 0; i < size; i++ {
for !stack.IsEmpty() && temperatures[i] > temperatures[stack.Top()] {
cur := stack.Pop()
result[cur] = i - cur
}
stack.Push(i)
}
return result
}