Problem
Logic
분석
- 문제 유형 (알고리즘…)
- 제약 조건 (인풋 크기, 예외 값, 시공간 복잡도…)
설계
- 알고리즘 선택
- 자료구조 선택
- 수도 코드 작성
- 정합판단
1 ~ 3
과정으로 도출된 로직이 문제를 해결하는가
- 그렇다 → 구현
- 잘 모르겠다 → 구현
- 아니다 → 1번부터 다시 점검
구현
테스트
My Code
cpp
boj/5397.cpp// https://www.acmicpc.net/problem/5397
// https://codeyoma.github.io/Computer-Science/1-Foundations--and--Theory/Algorithms/ps/boj/5397/5397
#include <iostream>
using namespace std;
#ifdef LOCAL
# define LOG clog
#else
struct nullstream : ostream {
nullstream()
: ostream(nullptr) {}
};
nullstream LOG;
#endif
//--------------------------------------------------------------------------------------------------
#define MAX (1234567891)
#define MIN (-1234567891)
#include <iostream>
#include <stack>
#include <string>
int main() {
// logic
int n;
cin >> n;
while (n--) {
stack<char> l, r;
string input;
cin >> input;
for (int i = 0; i < input.length(); ++i) {
switch (input[i]) {
case '<': {
if (!l.empty()) {
r.push(l.top());
l.pop();
}
break;
}
case '>': {
if (!r.empty()) {
l.push(r.top());
r.pop();
}
break;
}
case '-': {
if (!l.empty()) {
l.pop();
}
break;
}
default: {
l.push(input[i]);
}
}
}
while (!l.empty()) {
r.push(l.top());
l.pop();
}
while (!r.empty()) {
cout << r.top();
r.pop();
}
cout << '\n';
}
}