어읽로꾸거
BOJ 5397 키로거 본문
백준 5397 링크
https://www.acmicpc.net/problem/5397
풀이 방법
스택 2개를 구성하여 왼쪽 스택, 오른쪽 스택을 구성합니다
한 글자씩 입력을 받아 왼쪽 스택에 넣어주고, 방향이나 백 스페이스 기호는 따로 처리하여 줍니다.
1. '<' 의 경우엔 왼쪽의 스택에서 빼서 오른쪽의 스택에 넣어줍니다.
2. '>' 의 경우엔 오른쪽의 스택에서 빼서 왼쪽의 스택에 넣어줍니다.
3. '-' 의 경우엔 왼쪽의 스택에서 하나 빼줍니다.
입력이 끝나면 왼쪽의 스택에서 모두 빼서 오른쪽에 넣어줍니다.
그리고 오른쪽에서 하나씩 빼면서 출력해주면 끝! 😎
Linked List를 이용한 풀이 : https://chika.tk/14
코드
#include<iostream>
#include<stack>
using namespace std;
int main() {
//freopen("input.txt", "r", stdin);
int n; scanf("%d", &n); getchar();
while (n--) {
stack <char> l, r;
char c;
scanf("%c", &c);
while (c != '\n') {
if (c == '<') {
if (!l.empty()) {
r.push(l.top());
l.pop();
}
}
else if (c == '>') {
if (!r.empty()) {
l.push(r.top());
r.pop();
}
}
else if (c == '-') {
if (!l.empty()) {
l.pop();
}
}
else {
l.push(c);
}
if (scanf("%c", &c) == -1)
break;
}
while (!l.empty()) {
r.push(l.top());
l.pop();
}
while (!r.empty()) {
printf("%c", r.top());
r.pop();
}
printf("\n");
}
}
'알고리즘' 카테고리의 다른 글
BOJ 1068 트리 (0) | 2019.04.07 |
---|---|
BOJ 16785 ソーシャルゲーム (0) | 2019.04.07 |
BOJ 5558 チーズ (0) | 2019.04.05 |
BOJ 2975 Transactions (0) | 2019.04.02 |
BOJ 4287 Word Ratios (0) | 2019.04.01 |