테스트케이스를 진행하면서 커서를 0으로 설정한다. 이는 현재 reverse 되지 않았음을 의미합니다. 커서를 따로 선언한 이유는 reverse할 때마다 Deque를 다 빼고 뒤집어서 넣으면 시간초과가 뜰 것 같아서 입니다.
명령어를 진행하면서 R이 들어오면 커서를 뒤집습니다. 뒤집어졌다는 것만 알면 되니까. 그리고 D가 들어오면 처음 Deque가 비었는지 체크하고 비었다면 flag를 false로, 그렇지 않다면 커서에 따라 마지막을 뺄 지 처음을 뺄 지 결정합니다.
마지막 출력부분은 우선적으로 flag에 따라 error를 출력할 지 값을 출력할 지 판단합니다. 비어있지 않다면 마지막 출력딴에서만 Deque를 한 번 뒤집어 값을 설정해줍니다. 사실 뒤집지 않고 StringBuilder같은걸 활용해도 되겠지만, toString으로 출력을 편하게하려고 뒤집어줬습니다.
bigpie1367 2년 전
50%까지 진행하고 나서 실패합니다.
코드의 흐름은 아래와 같습니다.
테스트케이스를 진행하면서 커서를 0으로 설정한다. 이는 현재 reverse 되지 않았음을 의미합니다. 커서를 따로 선언한 이유는 reverse할 때마다 Deque를 다 빼고 뒤집어서 넣으면 시간초과가 뜰 것 같아서 입니다.
명령어를 진행하면서 R이 들어오면 커서를 뒤집습니다. 뒤집어졌다는 것만 알면 되니까. 그리고 D가 들어오면 처음 Deque가 비었는지 체크하고 비었다면 flag를 false로, 그렇지 않다면 커서에 따라 마지막을 뺄 지 처음을 뺄 지 결정합니다.
마지막 출력부분은 우선적으로 flag에 따라 error를 출력할 지 값을 출력할 지 판단합니다. 비어있지 않다면 마지막 출력딴에서만 Deque를 한 번 뒤집어 값을 설정해줍니다. 사실 뒤집지 않고 StringBuilder같은걸 활용해도 되겠지만, toString으로 출력을 편하게하려고 뒤집어줬습니다.
고려해본 사항은 아래와 같습니다
1. 출력간에 공백이 있는가?
2. Deque가 비어있는가?'
시도해본 TC
문제의 TC
+
1
RRRRRRDRRRDD
3
[1,2,3]