728x90
⬛ 프로그래머스 | LV.2 택배상자 - Stack & 구현 문풀 (Java)
https://school.programmers.co.kr/learn/courses/30/lessons/131704
💚문제 접근 방식
문제를 읽어보면 보조 컨테이너 설명이 스택과 유사하다. 스택을 활용하여 처리를 해야 된다.
컨테이너는 순차적으로 들어올 건데, 정해진 순서의 값과 같은지 다른지에 따라 다르게 처리해야 한다. 맨 처음에 제출했을 때 4) 에서 처리해주는 while 문에 대한 처리 없이 매번 현재 box번호와 order 상의 번호 비교를 통해 처리를 해주었는데 이게 잘 안되었다ㅠㅠ
1) box 번호는 순차적으로 1번~size만큼 들어온다.
2) 현재 box 번호와 order상의 번호가 맞으면 answer++
3) 현재 box 번호와 order 상의 번호 다르면 스택 push
4) while 문 돌면서 stack 빌 때까지 stack의 현재값이 order의 값과 일치하는 동안 stack.pop처리하면서 진행
💚 제출 코드
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
int idx = 0;
for(int i=1; i<=order.length; i++){
//순서가 맞으면
if(i != order[idx]){
stack.push(i);
}else{ //순서가 다르면
idx++;
answer++;
}
while(!stack.isEmpty() && stack.peek() == order[idx]){
stack.pop();
idx++;
answer++;
}
}
return answer;
}
}
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 (카카오) | LV.2 메뉴 리뉴얼 - DFS (Java) (1) | 2024.04.29 |
---|---|
프로그래머스 (Summer/Winter) | LV.2 스킬트리 - 구현 문풀 (Java) (0) | 2024.04.27 |
프로그래머스 | LV.2 구명보트 - 그리디 문풀 (Java) (31) | 2024.04.18 |
프로그래머스 | LV.2 조이스틱 - 구현 문풀 (Java) (0) | 2024.04.15 |
프로그래머스 | LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (MySQL) (0) | 2024.04.15 |