반응형
https://app.codility.com/programmers/trainings/4/disappearing_pairs/
1. 2022.04.15 시도
소요시간: 21분
import java.util.*;
class Solution {
public String solution(String S) {
Stack<Integer> prev = new Stack<>();
for (int i=0; i<S.length(); i++) {
if (prev.size() >0 && (S.charAt(prev.peek()) == S.charAt(i))) {
prev.pop();
continue;
}
prev.push(i);
}
String ret ="";
while(!prev.isEmpty()) {
ret = S.charAt(prev.pop()) + ret;
}
return ret;
}
}
풀이 접근 과정
같은 문자 2개의 블럭은 제거될 수 있는 문제이기 때문에 stack을 사용해서 peek()와 다음 문자가 같은지를 파악해서 글자를 지워나갈 수 있다.
다 지워졌다면 그 이후남은 문자를 연결해서 리턴한다.
느낀점
- stack을 생각하는 순간 문제가 easy로 변한다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(1295. Find Numbers with Even Number of Digits) (0) | 2022.04.16 |
---|---|
.leetcode(485. Max Consecutive Ones) (0) | 2022.04.16 |
.codility(StrSymmetryPoint) (0) | 2022.04.16 |
.codility(FirstUnique) (0) | 2022.04.16 |
.leetcode(797. All Paths From Source to Target) (0) | 2022.04.14 |