프로그래머스

[프로그래머스 Level 2] 짝지어 제거하기 [Java]

거북이같은곰 2022. 9. 24. 05:09

 


https://school.programmers.co.kr/learn/courses/30/lessons/12973/solution_groups?language=java&type=all 

 

프로그래머스

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

programmers.co.kr

 

 

※. 스택 괄호 문제와 똑같다.

 

※. 같은 문자 두 개가 연속으로 붙어있다면 제거 할 수 있다.

(스택에 넣어서 이전의 문자(스택의 맨 위) 와 새로 찾은 문자가 같다면 스택에서 꺼낸다(제거))

(같지 않다면 스택에 넣는다. 차례대로 제거하면 짝이 맞는지 확인할 수 있다.)

 

※. 스택이 남아있다면 짝이 맞지 않는 문자열 0을 반환 아니라면 1

 


import java.util.Stack;
class Solution
{
    public int solution(String s)
    {
        Stack<Character> stk = new Stack<>();
        for(int i = 0; i < s.length(); i++) {
        	if(stk.isEmpty()) {
        		stk.push(s.charAt(i));
        	}
        	else if(stk.peek() == s.charAt(i)){
        		stk.pop();
        	}
        	else {
        		stk.push(s.charAt(i));
        	}
        }
        
        if(stk.isEmpty()) {
        	return 1;
        }
        else {
        	return 0;
        }
    }
}