알고리즘
[프로그래머스] 택배상자, 자바
순원이
2024. 4. 15. 19:32
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1 번째 시도
문제가 장황해서 어려워 보일 수 있지만, 택배상자의 우선순위 배열을 만들고 우선순위 배열을 탐색하다 부합하는 숫자가 있으면 count하고 없으면 stack에 보관하는 문제이다.
import java.util.*;
class Solution {
public int solution(int[] order) {
int present = 0;
int result = 0;
Stack<Integer> stack = new Stack<>();
int[] priorty = new int[order.length];
for(int i =0; i < priorty.length; i++) {
priorty[order[i]-1] = i;
}
for(int p : priorty) {
if(p == present) {
result++;
present++;
}
else {
stack.push(p);
}
while(!stack.isEmpty() && stack.peek() == present) {
stack.pop();
result++;
present++;
}
}
return result;
}
}