알고리즘
프로그래머스 짝지어 제거하기 (JAVA)
박카스마시며코딩
2023. 7. 20. 21:34
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
저는 스택을 이용해 문제를 해결하였습니다.
스택을 통해 이전의 문자를 저장하고 현재 문자와 스택의 맨 위에 있는 값과 같다면 빼주고 같지 않다면 스택에 넣어주었습니다.
마지막으로 스택이 비어있는지를 판단하고 결과를 리턴하였습니다.
import java.util.*;
class Solution {
private static final int SUCCESS = 1;
private static final int FAIL = 0;
public int solution(String s) {
Deque<Character> stack = new LinkedList<>();
for(int i = 0 ; i < s.length() ; i++){
char now = s.charAt(i);
if(!stack.isEmpty() && stack.peekFirst() == now){
stack.pop();
continue;
}
stack.push(now);
}
if(stack.isEmpty()){
return SUCCESS;
}
return FAIL;
}
}