문제 난이도 : Easy


문제 유형 : Data Structures - Stack


문제 설명 간략 :

온도가 담긴 integer 배열이 주어지고 따뜻해지는 날의 갯수를 반환하라.


제약사항

  • 1 <= temperatures.length <= 105
  • 30 <= temperatures[i] <= 100



자바 풀이

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        int [] days = new int[temperatures.length];

        Stack<Integer> stack = new Stack<>();

        for(int i = 0; i < temperatures.length; i++) {
            while(!stack.empty() && temperatures[stack.peek()] < temperatures[i]) {
                int idx = stack.pop();
                days[idx] = i - idx;
            }

            stack.push(i);
        }

        return days;
    }
}



출처

해커랭크 문제