ALGORITHM/PROGRAMMERS
[프로그래머스] 짝지어 제거하기 (2017 팁스타운)
0298
2021. 7. 28. 10:14
https://programmers.co.kr/learn/courses/30/lessons/12973?language=java
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
2021-07-28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import 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 한다.