seunghyun Note

[프로그래머스] - 짝지어 제거하기 with JAVA 본문

코딩테스트/백준

[프로그래머스] - 짝지어 제거하기 with JAVA

승숭슝현 2024. 1. 4. 10:37

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

 

프로그래머스

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

programmers.co.kr

문제 풀이


 공부했던 스택의 응용 버전이였다. 
스택을 사용한다면 매우 간단한 문제..!

스택을 그림.. 이해가 되시려나

import java.util.Stack;

class Solution {
    public int solution(String inputString) {
        Stack<Character> stack = new Stack<>();
        // 문자열을 순회하며 스택에 문자를 추가하거나 제거합니다.
        for (int i = 0; i < inputString.length(); i++) {
            char currentChar = inputString.charAt(i);
            if (stack.empty()) {
                stack.push(currentChar);
            } else if (stack.peek() == currentChar) {
                stack.pop(); // 스택의 top이 현재 문자와 같으면 pop
            } else {
                stack.push(currentChar); // 그렇지 않으면 스택에 추가
            }
        }

        // 스택이 비어있으면 모든 문자가 제거된 것이므로 1을 반환, 그렇지 않으면 0 반환
        if (stack.empty()) {
            return 1;
        } else {
            return 0;
        }
    }
}

 

728x90