[프로그래머스] 택배 상자

gomanbo·2023년 8월 2일
0

코딩테스트 연습 > 연습문제 > 택배상자
https://school.programmers.co.kr/learn/courses/30/lessons/131704

스택

function solution(order) {
  var answer = 0;
  let stack = [];
  let index = 0;
 
  for (let i = 1; i <= order.length; i++) {
    if (order[index] !== i) {
      stack.push(i);
    } else {
      index++;
      answer++;
    }

    while (stack.length !== 0 && stack.at(-1) === order[index]) {
      answer++;
      stack.pop();
      index++;
    }
  }
  return answer;
}

풀이

  1. 택배 상자만큼 루프를 돌려준다.
  2. 첫번째 택배상자가 나올때까지 stack이라는 배열에 쌓아준다.
  3. 그 값이 나온 경우, answer +1, 다음 인덱스 표시 index+1
  4. stack에서 제일 끝 값이 다음 택배상자인 경우 빼주고 answer +1
profile
ㅎ.ㅎ

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

많은 도움이 되었습니다, 감사합니다.

답글 달기