<p>Given an array of integers <code>temperatures</code> represents the daily temperatures, return <em>an array</em> <code>answer</code> <em>such that</em> <code>answer[i]</code> <em>is the number of days you have to wait after the</em> <code>i<sup>th</sup></code> <em>day to get a warmer temperature</em>. If there is no future day for which this is possible, keep <code>answer[i] == 0</code> instead.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> temperatures = [73,74,75,71,69,72,76,73]
<strong>Output:</strong> [1,1,4,2,1,1,0,0]
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> temperatures = [30,40,50,60]
<strong>Output:</strong> [1,1,1,0]
</pre><p><strong class="example">Example 3:</strong></p>
<pre><strong>Input:</strong> temperatures = [30,60,90]
<strong>Output:</strong> [1,1,0]
</pre>
<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;=&nbsp;temperatures.length &lt;= 10<sup>5</sup></code></li>
	<li><code>30 &lt;=&nbsp;temperatures[i] &lt;= 100</code></li>
</ul>

class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        n = len(temperatures)

        stack_temp = []
        stack_ind = []
        res = [0]*n

        for i, cur_temp in enumerate(temperatures):
            
            for j in range(len(stack_temp)-1,-1,-1):
                if cur_temp > stack_temp[j]:
                    ind = stack_ind.pop()
                    res[ind] = i - ind
                    stack_temp.pop()
                else:
                    break
            stack_temp.append(cur_temp)
            stack_ind.append(i)
        return res






        # n = len(temperatures)
        # stack =[]
        # stack_ind = []
        # res = [0]*n
        # for i in range(n):
        #     if i==0:
        #         stack.append(temperatures[i])
        #         stack_ind.append(i)
        #         continue

        #     while stack and stack[-1] < temperatures[i]:
        #          stack.pop()
        #          ind_day = stack_ind.pop()
        #          res[ind_day] = i - ind_day
        #     stack.append(temperatures[i])
        #     stack_ind.append(i)
        # return res


            

            
            
            


            
            # stack.append(temp)
            # cnt = 1
            # while stack and stack[-1]<temp:
            #     res




            
         
        
27800