개발공부/코딩테스트 연습문제

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

ku-na 2022. 1. 10. 14:48

문제 설명과 제한사항

 

풀이

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        Stack<Integer> tmp = new Stack<>();
        for(int i = 0; i < arr.length; i++){
            if(!tmp.isEmpty() && tmp.peek() == arr[i]) 
                continue;
            else tmp.push(arr[i]);
        }
        
        int[] answer = new int[tmp.size()];
        
        for(int i = tmp.size()-1; i >= 0; i-- ){
            answer[i] = tmp.pop();
        }
        return answer;
    }
}

 

++

 리스트로 풀 수 도 있지만 갑자기 스택이 생각나서 스택으로 풀었다.

리스트를 활용해서 풀려면 변수 선언을 하나 더 해야하는데 그게 싫었다.

그래서 연속 비교를 위해 마지막에 추가한 데이터를 알 수 있는 스택을 활용했다.

스택을 활용한 다른 사람의 코드가 없어서 뭔가 뿌듯하면서도 소외감 느꼈다.