코딩테스트

프로그래머스 : 같은 숫자는 싫어

joonwoong 2024. 3. 19. 22:00

문제.

 

 

풀이.

연속되는 숫자가 나오면 안되니까 스택의 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