이번에는 다소 코드가 길어졌다.
주어지는 명령어대로 연산을 처리하는 프로그램을 만드는 문제였는데, 입력을 받는 것부터 문제였다.
string으로 받으니 숫자들을 아스키코드로 처리하여 덱에 담았다.
stoi함수로 string을 int로 변환하여 해결하니, 시간초과 오류가 났다.
나는 덱을 두개 사용하여 R연산 때마다 옮겨가며 바꿨는데, 생각해보니 그때 그때 바꾸지말고, 뒤집혔다는 상태만 표시하여 앞, 뒤로 빼주면 그만이었다.
마지막으로 예외처리가 되지 않았는데, 큐가 비었을 때 error를 출력한 것이다.
큐에 하나의 원소가 담기고, 이것을 뺀다면 빈 배열이 나와야하는데, 덱이 비었기때문에 error를 출력하였다.
따라서 덱의 상태가 아닌, D연산 때마다 원소의 개수를 나타낸 변수를 감산해주고, 이것에 따라 출력하게 하였다.
쉽지 않은 문제였지만, 풀고나니 이처럼 상쾌할수가 없다. 그리고 이것보다 피곤할수가 없다...