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이 아닌 경우에는 모든 함수를 처리하고 남은 배열을 형식에 맞추어서 출력

vect_r   3년 전

음... 제 질문에 제가 답하게 되었습니다.

틀렸다고 뜬 원인은 '시간초과' 인 것 같습니다. (왜 시간초과라고 안떴는지는 잘 모르겠지만요.)

위 코드의 line 56을 보면 strlen이 있는데, 이게 시간을 많이 잡아먹는 듯합니다.

저의 경우에는 다음 코드와 같이 문자열의 '\0' 문자를 응용하는 방식으로 변경하였습니다.

twicedtna   3년 전

@vect_r 감사합니다. 저도 '틀렸습니다'만 나왔는데 strlen 안 쓰니까 바로 통과했어요

댓글을 작성하려면 로그인해야 합니다.