[코테/JAVA] 연습문제 : 택배상자

    728x90
    반응형

    2022.12.13

    코테 문제풀이 22주차 01번 문제

     

     

    문제

      ① 연습문제 : 택배상자

     

      ② 링크

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

     

     

    접근방법

      생각해낸 방법은 1가지

      ① 스택

     

     

    풀이

      ① 접근방법 :

      ② 풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    import java.util.Stack;
     
    class Solution {
        /*
         * Date: 2022-12-13
         * Time: 21:24
         */
        public int solution(int[] order) {
            return pickUp(order);
        }
     
        /*
         * 짐고르기
         * 1. Stack을 사용해 가장 최근에 쌓은 짐부터 peek
         * 2. Stack.peek() 메소드를 사용해서 값을 비교
         * 3. 실어야 할 짐이면 쌓은 짐의 갯수 카운트
         * 4. 보조 컨테이너 벨트에 올리는 경우 Stack.push()
         */
        public int pickUp(int[] order) {
            Stack<Integer> stack = new Stack<>();
            int index = 0;
     
            for (int i = 0; i < order.length; i++) {
                if (i+1 == order[index]) {
                    index++;
                    while (stack.size() != 0 && stack.peek() == order[index]) {
                        index++;
                        stack.pop();
                    }
                } else {
                    stack.push(i+1);
                }
            }
            return index;
        }
    }
    cs

     

     

    결과

     

     

    주의사항

      ① 스택의 크기가 0일때의 분기처리

    728x90
    반응형

    댓글