https://school.programmers.co.kr/learn/courses/30/lessons/181918
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
저는 덱을 이용해 문제를 해결했습니다.
스택을 사용해도 되지만, 그러면 나중에 뒤집어 줘야하기 때문에 덱을 사용해 구현했습니다.
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int[] stk = cal(arr);
return stk;
}
private static int[] cal(int[] arr){
Deque<Integer> deque = new LinkedList<>();
int i = 0;
while(i < arr.length){
int num = arr[i];
if(deque.isEmpty() || deque.peekLast() < num){
deque.offerLast(num);
i++;
continue;
}
if(deque.peekLast() >= num){
deque.pollLast();
}
}
int[] result = new int[deque.size()];
for(int j = 0 ; j < result.length ; j++){
result[j] = deque.pollFirst();
}
return result;
}
}
'알고리즘' 카테고리의 다른 글
백준 14650번 걷다보니 신천역 삼 (JAVA) (0) | 2023.06.11 |
---|---|
프로그래머스 리스트 자르기 (JAVA) (0) | 2023.06.10 |
백준 18223번 민준이와 마산 그리고 건우 (JAVA) (0) | 2023.06.08 |
백준 17845번 수강 과목 (JAVA) (0) | 2023.06.07 |
프로그래머스 다항식 더하기 (JAVA) (0) | 2023.06.06 |