[프로그래머스] #스택. 같은 숫자는 싫어

bien·2024년 5월 22일
0

코딩테스트

목록 보기
4/14

문제

프로그래머스: 같은 숫자는 싫어


풀이

해결 방법

Stack을 통해 중복값 제거.

💻 결과 코드

import java.util.*;

public class Solution {
    public Stack<Integer> solution(int []arr) {
        Stack<Integer> stack = new Stack<>();
        
        for(int num : arr) {
            if(stack.size() == 0 || stack.peek() != num) {
                stack.push(num);
            }
        }
        
        return stack;
    }
}
  • return 값을 Stack<Integer>로 변경했다.
    • Stack<Integer>에서 int[]로 변경하는 코드가 불필요하게 증가해 변경하는 편이 효율적이어 보였다.
  • Stack의 가장 위의 값을 비교하기위해, Stack이 비어있는 경우가 문제가 되었다.
    • if문에서 stack의 size가 0이 아닌 경우를 포함시켜 해결

📗 Stack

  • 후입 선출(LIFO, Last-In-First-Out) 구조를 가진 자료구조
  • 데이터를 순서대로 쌓아올리는 구조로, 가장 마지막에 들어간 데이터가 가장 먼저 나오게 된다.
  • Stack은 java.util.Stack 클래스로 구현되어 있음.
    • push(E item): 스택의 맨 위에 데이터를 추가
    • pop(): 스택의 맨 위 데이터를 꺼내고 제거
    • peek(): 스택의 맨 위 데이터를 조회만 하고 제거하지 않음.
    • empty(): 스택이 비어있는지 확인
    • search(Object o): 스택에서 특정 객체의 위치(index)를 찾음
profile
Good Luck!

0개의 댓글