[Java] 짝지어 제거하기 - Lv2 프로그래머스 2017 팁스타운코딩테스트/프로그래머스2023. 3. 30. 06:50
Table of Contents
728x90
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=java
풀이
1. Stack을 활용해 한방에 일치하는 char값이 있는지 확인 후 Stack에서 제거
2. 제거 시 해당 idx는 add하지 않아야 한다. (일치해서 제외했기 때문에 건너뛰어야함)
import java.util.Stack;
class Solution {
public int solution(String s) {
Stack<Character> st = new Stack<>();
for(int i=0; i<s.length(); i++) {
int chk = 0;
while(!st.isEmpty() && st.peek() == s.charAt(i)) {
st.pop();
chk++;
}
if(chk == 0) st.add(s.charAt(i));
}
if(!st.isEmpty()) return 0;
else return 1;
}
}
DFS BFS를 활용한 문제를 푸는 과정에서 매끄러운 코드작성이 되지 않아 현타가 왔었는데 간단히 풀수있는 문제로 환기를 시켰다.. 다시 완전탐색으로....ㅠㅠ
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!