반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12906
풀이
스택을 이용해 연속되는 숫자를 관리한다.
arr의 숫자를 스택에 저장할 때 스택의 top에 있는 숫자와 지금 저장할 숫자가 같은지 확인한다.
코드
python
1
2
3
4
5
6
7
8
|
def solution(arr):
answer = []
for n in arr:
if not (answer and n == answer[-1]):
answer.append(n)
return answer
|
cs |
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import java.util.Stack;
public class Solution {
public int[] solution(int[] arr) {
Stack<Integer> st = new Stack<>();
st.add(arr[0]);
for (int i = 1; i < arr.length; i++) {
if (arr[i] != st.peek()) {
st.add(arr[i]);
}
}
int[] answer = new int[st.size()];
int idx = st.size() - 1;
while (!st.empty()) {
answer[idx--] = st.pop();
}
return answer;
}
}
|
cs |
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 - 컨트롤 제트 (0) | 2024.01.26 |
---|---|
프로그래머스 - 올바른 괄호 (0) | 2024.01.25 |
프로그래머스 - 짝지어 제거하기 (0) | 2024.01.13 |
프로그래머스 - n^2 배열 자르기 (0) | 2024.01.10 |
프로그래머스 - 방문 길이 (1) | 2024.01.06 |