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

AMUD·2022년 9월 30일
0

Algorithm

목록 보기
46/78

문제


문제링크

접근

  • 처음에는 간단한 이용하여 풀려고 하였지만, 시간 초과가 나서 복잡도 O(n)인 방법을 고민하였다.
  • '제일 끝에 있는 것과 같은 것'이라는 개념을 생각하다가 스택이 떠올랐고, 스택을 떠올린 뒤에는 매우 간단하게 풀이하였다.

소스 코드

import java.util.Stack;

class Main {
    public static void main(String[] args) throws Exception {
        String s = "cdcd";
        Solution sol = new Solution();

        System.out.println("result : " + sol.solution(s));
    }
}

class Solution {
    public int solution(String s) {
        Stack<Character> stack = new Stack<>();

        for (Character c : s.toCharArray()) {
            if (!stack.isEmpty() && stack.peek() == c) {
                stack.pop();
            } else {
                stack.add(c);
            }
        }

        return stack.isEmpty() ? 1 : 0;
    }
}
profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글