5430번 - AC
50%에서 틀리는데 아무리 봐도 모르겠어서 열심히 반례를 찾다가, 해도 해도 안 돼서 다시 코드 보고 예제 보고 있었는데
알고보니까 이 문제 n이 0이어도 빈 배열인 []을 입력받습니다.
저같은 경우에는 n이 1 이상일때만 cin으로 배열을 입력받았는데 이게 문제가 되어서 n이 0일때 입력받지 않게 되지만 실제 입력은 []을 콘솔로 입력받게 되고,
이 []이 버퍼에서 비워지지 않으면 다음 입력에 영향을 끼쳐 잘못된 입력이 들어가는 것으로 판단됩니다.
저는 n이 0일때도 입력받도록 설정했는데 (getline(cin,str); 처럼)
cin.ignore(); 하셔도 맞을 것 같구요. 반례 놓고 갑니다
input:
3
D 0 []
R 0 []
output:
error
[]
answer:
저는 틀리는게 아니라 50%에서 시간초과로 고생이였는데..
직접 swap으로 dq를 돌려주는게 아니라 돌려주는 것 처럼 보이게 만드는게 핵심이였네요..ㅎㅎ
덕분에 좋은 설계 알아갑니다~
감사하바바바밥니다!@
와 왜틀리나 했는데 덕분에 찾았습니다 진짜 상상도 못했네요
덕분에 시간 많이 아낀거같습니다 몇시간을 더 날렸을지 상상도 하기 싫네요 혼자선 못찾고 포기했을거같아요 진짜 고맙습니다
댓글을 작성하려면 로그인해야 합니다.
pv104 2년 전 2
50%에서 틀리는데 아무리 봐도 모르겠어서 열심히 반례를 찾다가, 해도 해도 안 돼서 다시 코드 보고 예제 보고 있었는데
알고보니까 이 문제 n이 0이어도 빈 배열인 []을 입력받습니다.
저같은 경우에는 n이 1 이상일때만 cin으로 배열을 입력받았는데 이게 문제가 되어서 n이 0일때 입력받지 않게 되지만 실제 입력은 []을 콘솔로 입력받게 되고,
이 []이 버퍼에서 비워지지 않으면 다음 입력에 영향을 끼쳐 잘못된 입력이 들어가는 것으로 판단됩니다.
저는 n이 0일때도 입력받도록 설정했는데 (getline(cin,str); 처럼)
cin.ignore(); 하셔도 맞을 것 같구요. 반례 놓고 갑니다
input:
3
D 0 []
R 0 []
R 0 []
output:
error
error
[]
answer:
error
[]
[]