예제조차 답이 다르게 나옵니다.,
5430번 - AC
답이 어떻게 나오시는건가요?
저는 입력 4
RDD
4
[1,2,3,4]
DD
1
[42]
RRD
6
[1,1,2,3,5,8]
D
0
[]에 대해
앗 맙소사... 저희 둘이 서로 같은 입력에 다른 결과를 받는것에서 혹시 입력 형태에 문제가 있는건가 했습니다.
그래서 매번 line을 읽어들이는 부분을 아래와 바꿨더니 바로 통과가 되었습니다.
gen_line = (line.strip() for line in lines)
shg9411님 도움 감사드립니다.
댓글을 작성하려면 로그인해야 합니다.
0xdeadbeef 3년 전
먼저 djm님이 올리신 AC FAQ 필독부터 읽어보았습니다.
-> reverse나 [::-1]은 마지막에 딱 한번만 사용했습니다.
-> deque로 처리하였습니다.
-> R [] 이나 D [1] 같은 애들로 테스트 해보았을때 둘다 []를 잘 출력했습니다. 이 부분에서도 딱히 문제를 못 찾겠습니다.
-> 처리하였습니다.
-> 매 테스트 케이스마다 P와 X는 새로 읽어들여 초기화 하도록 했고, 현재 뒤집힌 상태인지 아닌지 확인하는 변수도 매 테스트 케이스마다 False로 초기화가 됩니다.
기본적으로 Python print는 마지막에 개행문자를 넣어주므로 이것도 확인했습니다.
-> 이것도 어차피 동적으로 읽어들이므로 문제 없을것이라 생각했습니다.
-> 빈 배열에 R, D, RD, DR, DD를 넣어봤을때 각각 [], error, error, error, error, [] 가 나오는 것을 확인하였습니다.
-> len(X)를 넣었으나 현재 TLE가 아닌 WA고 len(deque)은 O(1)이라 괜찮다 생각합니다.
-> 몰아서 처리하지 않았습니다.
-> 넵 알겠습니다.
이외에도 게시판을 1페이지부터 7페이지까지 돌며 올라온 반례들을 모두 시도했으나 잘못된 부분은 찾지 못했습니다.
어떤 부분이 잘못된걸까요?
---
접근법을 빼먹어 추가합니다. 처음은 뒤집히지 않은 상태입니다. 이때 D를 하면 앞에서 원소를 뺍니다.(popleft) R이 들어오면 현재 상태를 뒤집습니다. (is_reversed = not is_reversed, 실제로 큐를 뒤집진 않음) 이 상태에선 원소를 빼게되면 뒤에서 원소를 뺍니다. (pop) 만약 모든 연산이 끝났는데 현재 상태가 뒤집힌 상태라면 출력하기 전에 한번 뒤집습니다. 알고리즘에 문제가 있는건지 입력/출력 부분에서 문제가 있는지 모르겠습니다.