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

urzi·2022년 3월 24일
0

PS

목록 보기
4/36

문제

https://programmers.co.kr/learn/courses/30/lessons/12906

풀이

  1. 스택을 이용해서 순서대로 넣어준다.
  2. 스택이 비어있으면 값을 바로 넣어준다.
  3. 스택의 제일 위에 값과 현재 값을 비교해서 다를 때에만 넣어준다. (중복 방지)
  4. 마지막에 stream을 이용해서 int형 array로 변환시켜 return 한다.

코드

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        int[] answer = {};
        
        // 값을 담을 stack 생성
        Stack<Integer> stack = new Stack<>();
        for (int x: arr) {

			// 스택이 비어있으면 그대로 넣어준다.
            if (stack.isEmpty()) {
                stack.add(x);
            } else {
            	// 스택의 제일 위에 값이랑 현재 값이 다를 때에만 넣어준다.(중복 방지)
                if (stack.peek() != x) {
                    stack.add(x);
                }
            }
        }

		// stream으로 int형 array로 변환시켜준다.
        return stack.stream().mapToInt(Integer::intValue).toArray();
    }
}
profile
Back-end Developer

0개의 댓글