VS 디버거로 확인하면 39번 for문의 출력 실행 시간은 2ms이하로 나오는데 어느 부분에서 시간이 초과되는지 모르겠습니다. 프로그래밍 초보에게 지도 한 수 부탁드립니다.

djm03178   4년 전

이 코드 그대로 냈더니 시간 초과가 아니라 틀렸습니다가 나왔습니다.

palilo   4년 전

왜냐하면 이 문제에서 요구하는 출력 방식은

3인 쿼리가 주어질 때마다 시간을 출력하는 것입니다.

지금 결과값을 모두 모아놓은 다음에 마지막에 쫘르륵 출력을 하고 있는데

채점 프로그램은 입장에선 3인 쿼리를 주었는데도 제출 코드는 아무 출력을 안하니 계속 기다리고 있는거죠.

결과값을 모아놓지 말고 3인 쿼리가 주어질때마다 바로바로 출력을 해야합니다.

그리고 19번 줄 실수하셨네요

djm03178   4년 전

아닙니다. 입력과 출력의 순서는 아무래도 상관 없습니다. 이 코드처럼 출력할 내용을 몰아놓고 나중에 출력해도 상관 없고, 프로그램이 출력할 때까지 채점 프로그램이 기다리지 않습니다.

palilo   4년 전

엥 확인해보니 그렇네요

코드상에선 시간초과 날 부분이 전혀 안보여서

출력방식 문제라고 생각했는데 아니었군요

모아놨다가 한번에 출력해도 정답이네요

djm03178   4년 전

그러니까 제가 위에 이 코드를 그대로 제출하면 시간 초과가 아닌 틀렸습니다를 받는다고 적은 것입니다.

질문자님이 시간 초과가 난 코드를 안 올리고 다른 코드를 올리셨다는 뜻이죠.

말씀해주신 19번째 줄 수정했습니다. 감사합니다.

그리고 제가 코드를 잘못 가져왔었네요;;; 49번째 줄에서 std::endl 대신  \n를 사용해서 그랬더군요.

위 코드가 시간초과가 나는 코드입니다.

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