[백준1406] 에디터 (C++)
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <stack>
#include <cstring>
using namespace std;
char str[600000];
int main() {
stack<char> left, right;
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
left.push(str[i]);
}
int num;
scanf("%d", &num);
while (num--) {
char what;
scanf(" %c", &what);
if (what == 'L') {
if (!left.empty()) {
right.push(left.top());
left.pop();
}
}
else if (what == 'D') {
if (!right.empty()) {
left.push(right.top());
right.pop();
}
}
else if (what == 'B') {
if (!left.empty()) {
left.pop();
}
}
else if (what == 'P') {
char addc;
scanf(" %c", &addc);
left.push(addc);
}
}
while (!left.empty()) {
right.push(left.top());
left.pop();
}
while (!right.empty()) {
printf("%c", right.top());
right.pop();
}
return 0;
}
-
scanf로 string 자료형을 입력받고 난 후에 char 자료형을 입력받을 때는 상당히 주의해야 한다.
-
" %c" 형식으로 공백 한 칸을 꼭 띄워줘야 한다.
분명 잘 풀었는데 에러가 떠서 당황스러웠는데 공백을 쓰지 않은 탓이었다. 원인은 string 자료형을 입력받은 후에는 입력버퍼가 깔끔하게 비워져 있지 않기 때문이라고 한다.
Author And Source
이 문제에 관하여([백준1406] 에디터 (C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yoohoo030/백준1406-에디터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)