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

밍주🫧 ·2025년 3월 2일
0
post-thumbnail

문제 원문

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

문제 정리

연속적으로 나타나는 숫자는 하나만 남기고 남은 숫자는 출력하지 않음. 단, hashSet처럼 중복이 아예 없는 게 아니고 <연속적인 같은 수> 가 없는 것임

왜 hashSet을 굳이 강조했냐면!!
내가실수를했기때문이다 하하...

그리고 해당 문제는 스택/큐라고 명시가 되어있어서
이번 문제는 stack으로 풀어보았다!!

최종 코드


import java.util.*;

public class Main {

    public int[] solution(int []arr) {

        Stack<Integer> stArr = new Stack<>();

        for (int i = 0; i < arr.length; i++) {

            //스택이 비어있으면 무조건 arr[i]
            if(stArr.isEmpty()) {
                stArr.push(arr[i]);
                //스택이 지금 바라보고 있는 마지막이 arr[i]와 다르다면
            } else if(!(stArr.peek().equals(arr[i]))) {
                //추가
                stArr.push(arr[i]);
            }
        }

        int[] answer = new int[stArr.size()];

        //스택은 후입선출이니까 마지막부터
        for (int i = answer.length - 1; i >= 0; i--) {
            answer[i] = stArr.peek();
            //값 추가 후 pop 연산으로 현재 값(peek)를 다음으로 넘김
            stArr.pop();
         }

        return answer;
    }
    
}


성공!!!

0개의 댓글

관련 채용 정보