5430번 - AC
(질문을 처음 하는 것이라서, 제대로 올라갔을지 모르겠네요...)
문제 출처에 있는 모든 테스트케이스(너무 많아서 복사가 안되는 경우를 제외)를 해보았습니다만, 전부 잘 실행되었습니다.
도대체 왜 틀린 것일까요...?
기본 설명
1. 배열로 덱을 구성한 뒤, 구조체(Deque)로 back_idx(제일 앞)/front_idx(제일 뒤)/numOfData(덱 안의 데이터 숫자)를 표기
2. R일 경우에는 back_idx와 front_idx의 갚을 서로 교환(배열 뒤집기)
3. D일 경우에는
3_1. R을 짝수번 실행한 경우(back_idx < front_idx인 경우) back_idx를 1증가, numOfData를 1 감소
3_2. R을 홀수번 실행한 경우(back_idx >= front_idx인 경우) back_idx를 1감소, numOfData를 1감소
3_3. 3_1, 3_2에서 numOfData가 0인 경우에는 error를 출력하고 현재 테스트케이스를 종료
4. 3_3에서 numOfData가 0이 아닌 경우에는 모든 함수를 처리하고 남은 배열을 형식에 맞추어서 출력
음... 제 질문에 제가 답하게 되었습니다.
틀렸다고 뜬 원인은 '시간초과' 인 것 같습니다. (왜 시간초과라고 안떴는지는 잘 모르겠지만요.)
위 코드의 line 56을 보면 strlen이 있는데, 이게 시간을 많이 잡아먹는 듯합니다.
저의 경우에는 다음 코드와 같이 문자열의 '\0' 문자를 응용하는 방식으로 변경하였습니다.
@vect_r 감사합니다. 저도 '틀렸습니다'만 나왔는데 strlen 안 쓰니까 바로 통과했어요
댓글을 작성하려면 로그인해야 합니다.
vect_r 3년 전
(질문을 처음 하는 것이라서, 제대로 올라갔을지 모르겠네요...)
문제 출처에 있는 모든 테스트케이스(너무 많아서 복사가 안되는 경우를 제외)를 해보았습니다만, 전부 잘 실행되었습니다.
도대체 왜 틀린 것일까요...?
기본 설명
1. 배열로 덱을 구성한 뒤, 구조체(Deque)로 back_idx(제일 앞)/front_idx(제일 뒤)/numOfData(덱 안의 데이터 숫자)를 표기
2. R일 경우에는 back_idx와 front_idx의 갚을 서로 교환(배열 뒤집기)
3. D일 경우에는
3_1. R을 짝수번 실행한 경우(back_idx < front_idx인 경우) back_idx를 1증가, numOfData를 1 감소
3_2. R을 홀수번 실행한 경우(back_idx >= front_idx인 경우) back_idx를 1감소, numOfData를 1감소
3_3. 3_1, 3_2에서 numOfData가 0인 경우에는 error를 출력하고 현재 테스트케이스를 종료
4. 3_3에서 numOfData가 0이 아닌 경우에는 모든 함수를 처리하고 남은 배열을 형식에 맞추어서 출력