-
[프로그래머스] 짝지어 제거하기 (2017 팁스타운)ALGORITHM/PROGRAMMERS 2021. 7. 28. 10:14
https://programmers.co.kr/learn/courses/30/lessons/12973?language=java
2021-07-28
12345678910111213141516import java.util.*;class Solution {public int solution(String s) {Stack<String> stack = new Stack<>();for(int i = 0; i < s.length(); i++) {String val = String.valueOf(s.charAt(i));if(!stack.isEmpty()) {String tmp = stack.peek();if(tmp.equals(val)) stack.pop();else stack.push(val);} else stack.push(val);}if(stack.isEmpty()) return 1;else return 0;}}cs #문제풀이
솔직히 처음에 보자마자 stack이 생각나진 않았다;;
1. stack이 비어있지않을때, peek()을 했을 때 값과 내가 지금 넣으려는 문자의 값이 같으면 pop()해준다.
2. 아니면, 새로운 문자를 push한다.
3. stack이 비어있으면 push 한다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 프린터 (0) 2021.07.28 [프로그래머스] 소수 찾기 (완전탐색) (0) 2021.07.28 [프로그래머스] 이진 변환 반복하기 (0) 2021.07.27 [프로그래머스] 기능개발 (0) 2021.07.26 [프로그래머스] 올바른 괄호 (0) 2021.07.26