문제.

풀이.
연속되는 숫자가 나오면 안되니까 스택의 top 값과 비교하여 같으면 push하지 않고 다를 경우 push한뒤에 pop하여 값을 꺼내는데 거꾸로 꺼내야함을 유의하자.
코드.
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
Stack<Integer> stack = new Stack<>();
int check = 0;
for(int i=0;i<arr.length;i++){
if(stack.isEmpty()){
stack.push(arr[i]);
}
else{
if(arr[i] != stack.peek()){
stack.push(arr[i]);
}
}
}
int[] answer = new int[stack.size()];
for(int i=stack.size()-1;i>=0;i--){
answer[i] = stack.pop();
}
return answer;
}
}
결과.

소감.
조금 더 간결하게 짜야하는데 실력이 부족한 느낌..?ㅠ
'코딩테스트' 카테고리의 다른 글
| BOJ : 28278 (0) | 2024.04.05 |
|---|---|
| BOJ : 5397 (0) | 2024.04.04 |
| SWEA 1219 : 길찾기 (0) | 2024.03.19 |
| SWEA 1218 : 괄호 짝짓기 (0) | 2024.03.11 |
| SWEA 1217 : 거듭제곱 (0) | 2024.03.11 |