알고리즘 문제/Programmers
[프로그래머스] 짝지어 제거하기 - Java
Praetoriani
2022. 3. 8. 16:23
풀이과정
- 자료구조 Stack을 이용하여 풀이를 진행한다.
- 주어진 String을 순회하며 각 char에 대해 다음을 수행한다.
- stack이 비어있으면 stack에 해당 char를 push한다.
- stack의 가장 위에 있는 char와 현재 순회중인 char가 서로 다르면 stack에 push한다.
- 그렇지 않으면 stack에서 pop한다.
- 최종적으로 stack이 비어있는지 여부를 확인하여 결과를 반환한다. 비어있다면 문자열을 주어진 조건에 맞게 모두 제거할 수 있음을 의미한다.
Code
import java.util.Stack;
class Solution {
public int solution(String s) {
Stack<Character> stack = new Stack<>();
char[] chars = s.toCharArray();
for (char ch : chars) {
if (stack.isEmpty() || stack.peek() != ch) {
stack.push(ch);
} else {
stack.pop();
}
}
return stack.isEmpty() ? 1 : 0;
}
}