Mecodata 2023. 6. 21. 23:58

Stack

- java.util 패키지로 LIFO 구조인 Stack을 구현할 때 사용

 

- push() = Stack에 데이터 추가

- pop() = Stack 맨 뒤의 데이터 출력 및 제거

- peek() = Stack 맨 뒤의 데이터 출력 (제거 X)

- clear() = Stack 안에 있는 데이터 모두 제거

- size() = Stack 안의 데이터 개수 반환

- contains() = Stack에 지정한 데이터가 포함되어 있는지 여부(true/false) 반환

- empty() = Stack이 비어있는지(true/false) 여부 반환

 

Example

https://school.programmers.co.kr/learn/courses/30/lessons/12973

 

프로그래머스

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

programmers.co.kr

import java.util.Stack;

class Solution{
    public int solution(String s){
        Stack<Character> stack = new Stack<>();
        char[] arr = s.toCharArray();
        for(char c : arr){
            if(!stack.isEmpty() && stack.peek().equals(c)){
                stack.pop();
            }else{
                stack.push(c);
            }       
        }   
        return stack.isEmpty() ? 1 : 0;
    }
}