[JAVA] 같은 숫자는 싫어

dada·2024년 9월 16일
0

algorithm

목록 보기
9/17

Stack 안쓰고 List로만 푸는 방법

import java.util.Arrays;
import java.util.ArrayList;

public class Solution {
    public int[] solution(int []arr) {
        ArrayList<Integer> answer = new ArrayList<Integer>();
        answer.add(arr[0]);
        
        for(int i = 1; i<arr.length;i++){
            if(arr[i-1]==arr[i]){
                continue;
            }
            else{
                answer.add(arr[i]);
            }    
        }
        
        return answer.stream().mapToInt(i -> i).toArray();
    }
}

Stack 사용해서 푸는 방법

import java.util.Stack;

public class Solution {
    public int[] solution(int []arr) {
        
        //stack 생성
        Stack<Integer> stack = new Stack<>();
        
        for(int i : arr){
            //stack.peek(): stack의 가장 위에 있는 값을 반환
            //stack이 비어있거나 전 값이랑 현재 값이랑 다른 경우 push
            if(stack.empty() || !stack.peek().equals(i)){
                stack.push(i);
            }
        }
        
        //stack to list
        return stack.stream().mapToInt(i->i).toArray();
    }
}
profile
CV, Vision AI 등을 공부합니다

0개의 댓글