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

2025. 5. 15. 17:31·Algorithm/Coding Test Records

문제 소개

오늘 풀었던 프로그래머스 - 같은 숫자는 싫어 문제를 정리합니다.

이 문제는 주어진 배열에서 연속해서 같은 숫자가 나오는 경우, 중복을 제거하고 하나만 남겨서 배열을 다시 구성하는 문제입니다.
단, 원래 순서(order)는 유지되어야 합니다.

문제 링크: 같은 숫자는 싫어 - 프로그래머스


문제 접근 방식

이 문제는 다음과 같은 방식으로 접근했습니다:

  1. 처음 숫자는 무조건 저장
  2. 이후 숫자를 순회하면서, 이전 숫자와 다를 경우만 저장
  3. List에 순차적으로 추가하면서 조건 체크 → 마지막에 배열로 변환

해결 과정 및 코드

핵심 아이디어

  1. 마지막으로 추가된 값과 현재 값이 같지 않을 때만 추가
  2. ArrayList를 이용해 동적으로 값 저장
  3. 마지막에 List → int[] 변환

코드

시간 복잡도 : O(N)

import java.util.*;

public class Solution {
    public int[] solution(int[] arr) {
        ArrayList<Integer> stack = new ArrayList<>();
        stack.add(arr[0]);
        for (int i = 1; i < arr.length; i++) {
            if (stack.get(stack.size() - 1) != arr[i]) {
                stack.add(arr[i]);
            }
        }
        return stack.stream().mapToInt(Integer::intValue).toArray();
    }
}

'Algorithm > Coding Test Records' 카테고리의 다른 글

[프로그래머스] 올바른 괄호 (시뮬레이션)  (0) 2025.05.17
[프로그래머스] 기능개발 (시뮬레이션)  (0) 2025.05.16
[프로그래머스] 베스트앨범 (Hash)  (1) 2025.05.14
[프로그래머스] 의상 (Hash)  (0) 2025.05.13
[프로그래머스] 전화번호 목록 (Hash)  (0) 2025.05.12
'Algorithm/Coding Test Records' 카테고리의 다른 글
  • [프로그래머스] 올바른 괄호 (시뮬레이션)
  • [프로그래머스] 기능개발 (시뮬레이션)
  • [프로그래머스] 베스트앨범 (Hash)
  • [프로그래머스] 의상 (Hash)
Celion
Celion
오늘도 평소처럼 화이팅!
  • Celion
    Orion Log
    Celion
  • 전체
    오늘
    어제
    • 전체 글 (144)
      • Uncompiled Thoughts (8)
        • 네이버 부스트캠프 10기 (5)
      • CS 기초부터 한 걸음씩 (34)
      • Code Odyssey (22)
      • Algorithm (77)
        • Coding Test Records (63)
      • Git (3)
      • reference (0)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

    greedy
    Level3
    java
    백준
    문법정리
    알고리즘고득점kit
    프로그래머스
    Kotlin
    코테
    boostcamp
    시뮬레이션
    Level2
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
[프로그래머스] 같은 숫자는 싫어 (Stack)
상단으로

티스토리툴바