[프로그래머스] 뒤에 있는 큰 수 찾기 / JavaScript / Level 2

KimYoungWoong·2023년 2월 14일
0

Programmers

목록 보기
46/60
post-thumbnail

🚩문제 주소


📄풀이

스택

스택이 비었다면 numbers의 인덱스를 넣어줍니다.

스택에 원소가 하나라도 있고, numbers[스택의 끝 원소인 인덱스]가 현재 탐색한 numbers의 원소보다 작다면, answer[stack에서 pop한 인덱스]를 현재 탐색한 numbers의 원소로 바꿔줍니다.
이 조건이 만족할 경우 계속 반복해줍니다.



👨‍💻코드

function solution(numbers) {
  const answer = Array(numbers.length).fill(-1);
  const stack = [];
  for (let i = 0; i < numbers.length; i++) {
    while (stack && numbers[stack.at(-1)] < numbers[i]) {
      answer[stack.pop()] = numbers[i];
    }
    stack.push(i);
  }
  return answer;
}

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글