[Programmers / Level 2] 12973. 짝지어 제거하기 (Java)

이하얀·2025년 1월 5일
0

🕊️ 프로그래머스

목록 보기
85/97

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 같은 문자 2개가 있는 짝을 찾아 제거하는 과정 반복, 이 짝지어 제거하기 과정이 가능하다면 1, 불가능하다면 0 반환하면 되는 문제


알고리즘


풀이 시간 : 35분

  • 문자열을 한 문자씩 순차 확인
    • 각 문자가 스택의 맨 위 값과 같으면 -> 짝으로 확인 + 문자 제거
    • 그렇지 않으면 -> 현재 문자를 스택에 추가
  • 결과 : 스택이 비어 있으면 짝이 맞는다고 판단하고 1 반환, 스택에 문자가 남아 있으면 짝이 맞지 않는다고 판단하고 0 반환
import java.util.*;

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

        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);

            if (!stack.isEmpty() && stack.peek() == c) {
                stack.pop();
                continue;
            }
            stack.push(c);
        }
        return stack.isEmpty() ? 1 : 0;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글

관련 채용 정보