728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131704
유사한 문제
2023.10.25 - [[IT] 코딩테스트/[문제 및 풀이] 프로그래머스] - [프로그래머스] 과제 진행하기 / 자바(Java)
해설
스택 자료구조를 사용하면 간편하게 구현 가능하다.
order에 있는 값들을 차례로 훑어나갈 인덱스 index를 따로 만들고
for문을 통해 택배 번호를 가진 i 로 택배를 하나씩 가져와 확인한다
우선 택배를 스택에 쌓아두고 내부에 while문을 통해 스택의 가장 위에 기사님이 원하는 택배가 있는 경우 빼주는 방식으로 해결한다.
주의점
- 입력으로 주어진 값은 기사님이 원하는 택배 번호의 순서대로 되어있다.
코드
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0;
Stack<Integer> s = new Stack<>();
int index=0;
for(int i=1;i<=order.length;i++){
// 일단 보조에 넣어보기
s.push(i);
//보조에 있던 상자 정리
while(!s.isEmpty() && s.peek()==order[index]){
s.pop();
answer++;
index++;
}
}
return answer;
}
}
728x90
'[IT] 코딩테스트 > [문제 및 풀이] 프로그래머스' 카테고리의 다른 글
[프로그래머스] 성격 유형 검사하기 / 자바(Java) (1) | 2023.11.01 |
---|---|
[프로그래머스] 이모티콘 할인행사 / 자바(Java) (0) | 2023.10.31 |
[프로그래머스] n^2 배열 자르기 / 자바(Java) (0) | 2023.10.29 |
[프로그래머스] 숫자 카드 나누기 / 자바(Java) (2) | 2023.10.28 |
[프로그래머스] 혼자서 하는 틱택토 / 자바(Java) (1) | 2023.10.27 |