lyg995   8년 전

고민해봐도 어디가 느린지(혹은 무한루프도는지) 알 수가 없어서 질문 올려봅니다.

cout이 느려서 그러나 의심만 하고 있습니다. ㅠㅠ...

(cout이나  print나 100만개 출력할려면 한세월이기는 한데...)


핵심 알고리즘은 머지정렬의 마지막 부분을 따라하였습니다.

배열 A와 배열 B의 비교할 위치를 각각 indexA, indexB로 잡았습니다.

i는 최종적으로 출력할 result[]가 어디까지 저장했는지(어디까지 출력할지)의 정보가 담겨져 있습니다.

handrake   8년 전

std::sort()를 쓰시면 됩니다.

cseteram   8년 전

우선 시간초과 문제는 cout을 printf로 바꾸면 됩니다.

cout이 많이 느려요.

lyg995   8년 전

handrake님, teram님답변 감사합니다.

처음엔 vector로 데이터를 A,B 구분하지 않고 받은후 정렬하고 output 부분에 코드를 그대로 사용했을때 시간 초과가 나서 sort함수를 포기했는데

다른방식으로 해보겠습니다.


그런데 c++에서 printf를 사용하면 런타임  에러나지 않나요?




cseteram   8년 전

제가 알기론 문제 없습니다.

cstdio 헤더를 포함하고 printf 문으로 모두 고쳐보세요.


그리고 소스에서 중복 제거를 하는 거 같은데, 중복 처리 하시면 안되요.

lyg995   8년 전

teram님 답변 감사합니다.

+ 제가 문제를 좀 잘못 이해했나 봅니다. 다시 문제를 천천히 읽어야겠습니다. ㅎ


handrake   8년 전

vector를 쓰시지 마시고 미리 배열로 잡은 다음 구분하지 않고 받고 std::sort 돌려보세요.

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