[스택/큐] 프로그래머스 Lv1. 같은 숫자는 싫어 - JAVA

2024. 2. 19. 23:24· Algorithm/Programmers
목차
  1. 🗂️ 문제
  2. 😎 내 풀이
  3. 🧐 배운 점
  4. 🔗 Reference

🗂️ 문제

문제 설명

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,

  • arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
  • arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.

배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.

 

제한사항

  • 배열 arr의 크기 : 1,000,000 이하의 자연수
  • 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수

 

입출력 예

arr answer
[1,1,3,3,0,1,1] [1,3,0,1]
[4,4,4,3,3] [4,3]

 

입출력 예 설명

입출력 예 #1,2

문제의 예시와 같습니다.

 

😎 내 풀이

import java.util.*;

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

        return answer;
    }
}

 

🧐 배운 점

  1. 배열은 크기가 고정적이다. 따라서 배열과 리스트의 장점을 합친 ArrayList를 선언하여 스택을 구현한다.
  2. for (int num : arr)
    • 파이썬의 for num in arr:와 동일한 기능이다.
  3. 배열의 길이는 length, 컬렉션프레임워크인 ArrayList의 길이는 size()를 통해 구한다.
  4. Integer를 Int로 변환하기 위해 intValue()를 사용한다.
  5. 출력 타입에 맞추어 ArrayList의 값을 배열로 복사하기 위한 과정이 추가로 필요하다.

 

🔗 Reference

 

[JAVA, 자료구조] Array(배열)와 List(리스트)의 차이(+그리고 ArrayList는?)

요즘 코딩테스를 공부중인데 문법을 따로 공부하는 것보다 오히려 문제를 풀면서 문법과 자료구조에 대해 더 잘 알게되는 것 같다! 오늘 코테 풀이에서는 어떨 때는 String[] str 배열로 쓰고, 어떨

blog.thelumayi.com

 

[JAVA] 자바_ length / length() / size() 사용법 및 차이

- legnth / length() / size() 사용법 및 차이 - 작업을 하다보면 언제 어디서 length 와 length() 그리고 size() 를 쓰는지 모를때가 있다. 나 역시도 하나 해보고 안되면 다른거 써보고 그러므로 한번 알아보

mine-it-record.tistory.com

 

'Algorithm > Programmers' 카테고리의 다른 글

[완전탐색] 프로그래머스 Lv2. 카펫 - Python  (0) 2024.03.21
[완전탐색] 프로그래머스 Lv1. 모의고사 - Python  (0) 2024.03.19
[정렬] 프로그래머스 Lv.2 가장 큰 수 - Python  (2) 2024.03.16
[힙] 프로그래머스 Lv2. 더 맵게 - Python  (0) 2024.03.07
[SQL] 프로그래머스 SELECT 문제 풀이  (1) 2024.02.19
  1. 🗂️ 문제
  2. 😎 내 풀이
  3. 🧐 배운 점
  4. 🔗 Reference
'Algorithm/Programmers' 카테고리의 다른 글
  • [완전탐색] 프로그래머스 Lv1. 모의고사 - Python
  • [정렬] 프로그래머스 Lv.2 가장 큰 수 - Python
  • [힙] 프로그래머스 Lv2. 더 맵게 - Python
  • [SQL] 프로그래머스 SELECT 문제 풀이
jyjyjy25
jyjyjy25
기록하는 습관jyjyjy25 님의 블로그입니다.
jyjyjy25
기록하는 습관
jyjyjy25
전체
오늘
어제
  • 분류 전체보기 (148)
    • Algorithm (87)
      • Baekjoon (59)
      • Programmers (28)
    • Courses (18)
      • Java (3)
      • Spring (11)
      • JPA (4)
    • CS (7)
    • DevOps (8)
      • AWS (8)
    • Framework (10)
      • Spring (5)
      • JPA (5)
    • Security (13)
      • Web Hacking (10)
      • Dreamhack (0)
      • ISMS (3)
    • Research (1)
    • Etc (4)

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.1
jyjyjy25
[스택/큐] 프로그래머스 Lv1. 같은 숫자는 싫어 - JAVA
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.