inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

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

    lhs's avatar
    lhs
    Nov 29, 2024
    [프로그래머스] 택배상자(131704)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/131704
     

    1. 문제 풀이 아이디어

    • 문제에서 기존 컨테이너 벨트가 Queue 구조로 되어 있어 Queue를 사용해야 한다고 생각할 수 있지만, 실제로는 Stack만으로도 문제를 해결할 수 있다.

    2. 나의 정답 코드

    class Solution { public int solution(int[] order) { int answer = 0; Stack<Integer> stack = new Stack<>(); for (int i = 1; i <= order.length; i++) { stack.add(i); while (!stack.isEmpty()) { if (stack.peek() == order[answer]) { stack.pop(); answer++; } else { break; } } } return answer; } }

    3. 정리

    • order의 크기만큼 for문을 실행하며, stack에 현재 값을 넣고, stack이 비어 있지 않은 동안 while문을 실행한다.
    • stack의 peek 값이 order[answer]와 같으면 stack에서 값을 제거하고 answer를 증가시킨다.
    • 값이 다를 경우 while문을 빠져나온다.
    • 이 과정을 반복하여 문제를 해결할 수 있다.
    Share article

    LHS's Study Space

    RSS·Powered by Inblog