[스택&구현] 프로그래머스 "짝지어 제거하기"
2021. 6. 26. 16:44ㆍ알고리즘 문제분석
https://programmers.co.kr/learn/courses/30/lessons/12973
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
수행시간 : 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 |