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

헛헛한꿔녀니·2023년 11월 13일

코딩 테스트

목록 보기
2/10

📚 문제

이미지를 클릭하시면 문제 링크로 연결됩니다.


📝 문제 이해

  • 중복값을 제거하지만 연속되지 않는다면 초기화

💡 문제 풀이

  • 배열의 루프를 돌면서 스택의 가장 최근에 삽입된 값과 일치하지 않는다면 배열의 값을 스택에 저장
  • 루프가 끝나면 스택의 사이즈만큼 답안의 배열 크기를 지정
  • 스택의 pop 으로 끝에서부터 지워가면서 해당하는 수를 배열의 마지막 칸에 넣어준다.

💻 소스 코드

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        int[] answer = new int[0];

        Stack<Integer> stacks = new Stack();
        for (int i = 0; i < arr.length; i++) {
            if(stacks.isEmpty()){
                stacks.push(arr[i]);
            } else if (stacks.peek() != arr[i]){
                stacks.push(arr[i]);
            }
        }

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

        for (int i = stacks.size() - 1; i >= 0; i--) {
            answer[i] = stacks.pop();
        }

        return answer;
    }
}

0개의 댓글