반응형
출처: SWEA
Input
10 1238099084
16 4100112380990844
Output
#1 1234
#2 4123
스택(Stack) 사용.
입력받은 문자를 stack에 한개씩 push 합니다.
같은 문자가 top에 위치한 경우에는 push하지 않고 top에 있는 것을 pop 합니다.
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
int testCase = 10;
stack<char> stack, answer;
int len;
string str;
for (int tc = 1; tc <= testCase; tc++) {
cin >> len >> str;
for (int i = 0; i < len; i++) {
if (!stack.empty() && stack.top() == str[i]) {
stack.pop();
continue;
}
stack.push(str[i]);
}
// 기존 스택에 있는 원소를 거꾸로 출력하기 위해서
// 다른 스택에 반대로 push해서 담습니다.
while (!stack.empty()) {
answer.push(stack.top());
stack.pop();
}
// 정답 출력
cout << "#" << tc << " ";
while (!answer.empty()) {
printf("%c", answer.top());
answer.pop();
}
cout << '\n';
}
}
반응형
'PS 문제 풀이 > SWEA' 카테고리의 다른 글
[SWEA] 3066 팀 정하기 (0) | 2021.03.01 |
---|---|
[SWEA] 1284 수도 요금 경쟁 (0) | 2021.03.01 |
[SWEA] 3376 파도반 수열 (0) | 2021.03.01 |
[SWEA] 3347 올림픽 종목 투표 (0) | 2021.03.01 |
[SWEA] 1213 String (0) | 2021.03.01 |
댓글