본문 바로가기
Algorithm/프로그래머스

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

by 세류오 2023. 3. 10.

📦 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


📦 문제 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  public static int[] solution(int[] arr) {
    int[] answer = {};
    int index = 0;//index생성
 
    Stack<Integer> st = new Stack<>();
    //매개변수를 for
    for(int num : arr){
      if(index == 0){//최초는 그냥 넣어주기
        st.add(num);
        index++;
        //0번 이후 이전값과 같지 않을 때만 add()
      } else if(!st.peek().equals(num)){
        st.add(num);
        index++;
      }
    }
    ;
    answer = new int[index];//index만큼 배열 생성
    //stack이 빌 때까지 반복
    while (!st.empty()) {
      int snum = st.pop();  
      answer[index-1= snum;
      index--;
    }
    return answer;
  }

😅 풀이 후기

Stack을 연습해보고 싶어서 풀은 문제

다른사람들의 답을보니 stack을 사용하지 않아도 충분히 가능한 문제였던 것 같다.

 

얼마전에 stack을 직접 구현해보니 문제를 풀 때 머리속에 어떻게 작동하는건지 그려지는게 재밌는것 같다.