[스택&구현] 프로그래머스 "짝지어 제거하기"
2021. 6. 26. 16:44ㆍ알고리즘 문제분석
https://programmers.co.kr/learn/courses/30/lessons/12973
수행시간 : 40분 / 난이도 : 레벨 2
로직을 짤때 스택을 생각 안하고 재귀적으로 제거하려 했다가 시간을 엄청 소비했다. 같이 문제푸는 친구가 힌트를 살짝줘서 스택으로 구현 완료했다.
로직은, 스택의 top과 vector의 인덱스를 하나씩 비교하면서 같으면, pop 다르면 push 해주는 간단한 알고리즘이다.
#include <iostream>
#include <string>
#include <algorithm>
#include <stack>
using namespace std;
int solution(string s)
{
int answer = -1;
stack<char> temp;
for(int i = 0; i<s.size();++i){
if(temp.size() == 0){
temp.push(s[i]);
}
else if(temp.top() == s[i]){
temp.pop();
}
else{
temp.push(s[i]);
}
}
if(temp.size() ==0){
answer = 1;
}
else{
answer = 0;
}
return answer;
}
'알고리즘 문제분석' 카테고리의 다른 글
[그래프&구현] 백준 2251번 물통 (0) | 2022.01.03 |
---|---|
[그리디] 프로그래머스 "구명보트" (0) | 2021.06.27 |
[BFS] 프로그래머스 "카카오프렌즈 컬러링북" (0) | 2021.06.26 |
[백트래킹] 백준 1987 알파벳 (0) | 2021.06.24 |
[투포인터] 백준 3273 두 수의 합 (0) | 2021.06.24 |