728x90
my full code
#include<string>
#include<stack>
using namespace std;
int solution(string s) {
stack<char> ch_stack;
for(char ch: s){
if(ch_stack.empty() || ch_stack.top() != ch)
ch_stack.push(ch);
else if(ch_stack.top() == ch){
ch_stack.pop();
}
}
return (ch_stack.empty())? 1 : 0;
}
문제
https://programmers.co.kr/learn/courses/30/lessons/12973
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
728x90
[접근]
첨엔 제대로 못풀었다..
답답한 마음에 질문하기에 들어갔더니 스택으로 풀었... 어쩌고라고 적힌 글이 보였다.
스택이라는 단어를 보자마자 한숨이 나왔고 바로 풀 수 있었다.
추가로 문제에서는 두개를 짝지어 제거한다는거였다..
난 처음엔 2개 이상이라고 생각하고 풀어서 다 틀렸던거였고.. 스택으로 풀면서 이상함을 느끼고 보니 두개만 짝지어 제거하는거였... 하튼 그렇다.
728x90
'coding > algorithm' 카테고리의 다른 글
| [programmers] Lv.3 N으로 표현(c++) (0) | 2022.07.01 |
|---|---|
| [programmers] Lv.2 행렬 테두리 회전하기(c++) (0) | 2022.07.01 |
| [programmers] Lv.1 체육복(c++) (0) | 2022.06.28 |
| [programmers] Lv.2 더 맵게(c++) (0) | 2022.06.27 |
| [programmers] Lv.2 기능개발(c++) (0) | 2022.06.27 |
댓글