coffee-yongsucheol / Java-Study-time

0 stars 0 forks source link

[하계 4주차] 코딩테스트 연습 #8

Open amazon7737 opened 2 months ago

amazon7737 commented 2 months ago

스택/ 큐

amazon7737 commented 2 months ago

같은 숫자는 싫어

기본 클래스만으로 구현하기

import java.util.*;

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

        Integer[] array = new Integer[arr.length];
        Integer[] index = new Integer[arr.length];

        int temp = arr[0];
        array[0] = arr[0];
        index[0] = 0;
        int cnt =1;

        for(int i=1; i< array.length;i++){

            if(arr[i] != temp){

                array[i] = arr[i];

                index[i] = i;

                temp = arr[i];
                cnt+=1;

            }else{
                array[i] = null;
            }

            //System.out.println(Arrays.toString(array));

        }

        //System.out.println(cnt);

        int[] result = new int[cnt];

        // 정답제출용 배열 인덱스와 검사 배열 인덱스를 따로 두어서 while문에서 돌린다
        int number = 0;
        int result_index=0;

        while (true){
            if(result_index == cnt){
                break;
            }
            if(array[number] == null){
                number+=1;
            }else{
                result[result_index] = array[number];
                result_index+=1;
                number+=1;
            }
        }
        //System.out.println(Arrays.toString(result));
        return result;
    }
}
junw00 commented 2 months ago

같은 숫자는 싫어

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        Stack<Integer> stack = new Stack<>();

        for(int i = 0; i < arr.length; i++) {
            if(stack.isEmpty()) {
                stack.add(arr[i]);
                continue;
            }

            if(stack.peek() != arr[i]) {
                stack.add(arr[i]);
            }

        }
        int[] answer= new int[stack.size()];
        for(int i = 0 ; i < answer.length; i++) {
            answer[i] = stack.get(i);
        } 
        return answer;
    }
}