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

dia·2023년 10월 6일
0

풀이방식

  1. stack 생성
  2. 바로 직전에 저장한 숫자와 다르면 추가
  3. iterator로 스택에 저장된 숫자 배열에 저장

포인트

try-catch

스택에 저장된 숫자가 없을 경우에는 바로 저장

배열 요소 생성 및 초기화

answer = new int[nums.size()]
배열의 요소를 생성함과 동시에 자동으로 기본값으로 초기화 해줌

사용 이유:
while문 안에서 할당되지 않은 배열의 요소를 참조하지 않기 위해 사용


구현

public class NUM12906 {
    public static void main(String[] args) {
        int[] arr = {1,1,3,3,0,1,1};
        System.out.println(solution(arr));
    }
    public static int[] solution(int []arr) {
        int[] answer = {};

        Stack<Integer> stack = new Stack();
        for(int a : arr) {
            try {
                if(stack.peek() != a) { stack.push(a); }
            } catch(Exception e) {
                stack.push(a);
            }
        }

        answer = new int[stack.size()];
        int i = 0;
        Iterator<Integer> iterator = stack.iterator();
        while(iterator.hasNext()) {
            answer[i++] = iterator.next();
        }

        return answer;
    }
}

*다른 분들의 코드를 참고하여 작성했습니다

profile
CS 메모장

0개의 댓글