[백준1406] 에디터 (C++)

유후·2022년 3월 20일
0

백준

목록 보기
3/69

BOJ 바로가기

#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 자료형을 입력받은 후에는 입력버퍼가 깔끔하게 비워져 있지 않기 때문이라고 한다.

profile
배우고 익힌 것을 세상에 말하기

0개의 댓글

관련 채용 정보