inblog logo
|
stupefyee
    알고리즘문제풀기

    [JAVA 문제 풀이] 343. 택배상자

    프로그래머스 (131704)
    Stupefyee's avatar
    Stupefyee
    Jun 26, 2025
    [JAVA 문제 풀이] 343. 택배상자
    Contents
    내가 작성한 코드다른 사람의 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/131704
    notion image
     

    내가 작성한 코드

    import java.util.*; class Solution { public int solution(int[] order) { Stack<Integer> container = new Stack<>(); // 기존 컨테이너 // 기존 컨테이너 추가 for (int i = order.length; i > 0; i--) { container.push(i); } Stack<Integer> subContainer = new Stack<>(); // 서브 컨테이너 int answer = 0; for (int i = 0; i < order.length;) { // 기본 컨테이너랑 order의 맨 앞이 같은 경우 if (!container.isEmpty() && order[i] == container.peek()) { container.pop(); answer++; i++; continue; } // 서브 컨테이너의 앞과 order의 맨 앞이 같은 경우 if (!subContainer.isEmpty() && subContainer.peek() == order[i]) { subContainer.pop(); answer++; i++; continue; } // 메인 컨테이너가 비었고 서브 컨테이너의 앞과 order의 맨 앞이 다른 경우 >> 더이상 담기 불가 if(container.isEmpty() && subContainer.peek() != order[i]) { break; } subContainer.push(container.pop()); // 기본 컨테이너를 서브 컨테이너에 추가 >> 상자 옮기기 } return answer; } }
     

    다른 사람의 코드

    import java.util.*; class Solution { public int solution(int[] order) { int idx = 0; int answer = 0; Stack<Integer> sub = new Stack<>(); // 서브 컨테이너 for (int i = 0; i < order.length; i++) { sub.add(i + 1); // 서브 컨테이너로 미리 옮기고 while (!sub.isEmpty()) { if (sub.peek() == order[idx]) { // 서브컨테이너랑 order랑 같으면 sub.pop(); answer++; // 트럭에 담기 idx++; // 다음 비교를 위한 인덱스 증가 } else break; } } return answer; } }
     
    Share article
    Contents
    내가 작성한 코드다른 사람의 코드

    stupefyee

    RSS·Powered by Inblog