알고리즘/BAEKJOON
BOJ 5397 : 키로거
피로물든딸기
2023. 1. 18. 22:40
반응형
https://www.acmicpc.net/problem/5397
참고
- BOJ 5397 : 키로거 with 세그먼트 트리, 링크드 리스트
풀이는 BOJ 1406 : 에디터와 동일하므로 참고하자.
입력을 받는 방식과 문자열의 크기만 바꾸면 된다.
#include <stdio.h>
int T;
char str[1001000];
char stack1[1001000];
char stack2[1001000];
int sp1, sp2;
int main(void)
{
scanf("%d", &T);
for (int tc = 0; tc < T; tc++)
{
scanf("%s", str);
int len;
for (len = 0; str[len]; len++);
sp1 = sp2 = 0;
char ch, tmp;
for (int i = 0; i < len; i++)
{
ch = str[i];
if (ch == '<')
{
if (sp1) stack2[sp2++] = stack1[sp1-- - 1];
}
else if (ch == '>')
{
if (sp2) stack1[sp1++] = stack2[sp2-- - 1];
}
else if (ch == '-')
{
if (sp1) sp1--;
}
else
{
stack1[sp1++] = ch;
}
}
for (int i = 0; i < sp1; i++) printf("%c", stack1[i]);
for (int i = sp2 - 1; i >= 0; i--) printf("%c", stack2[i]);
putchar('\n');
}
return 0;
}
반응형