rhwnsrb1223   4년 전

실행 값은 제대로 출력이 되는데,

시간초과 에러가 발생합니다.

저의 생각으로는 sort를 하기에 발생하는 문제같은데,

그 문제가 맞다면, 이와같은 문제는 어떻게 해결해야하나요?

또한, 그것이 아니라면 어떤 방법을 사용해야할지 감이 오지않습니다 ㅠ

cheshirecoder   4년 전

정상 작동하지 않으므로 문제를 잘 읽고 다시 잘 생각해보기 바랍니다.

ploffer11   4년 전

일단 알고리즘 로직이 틀렸습니다. 그런데 틀렸습니다가 아닌  시간초과가 나는 이유는 endl을 써서 그런 것 같습니다.

endl을 "\n" 으로 바꾸시고

main문 바로 아래에

cin.tie(0);

ios::sync_with_stdio(0); 

도 추가해주시면 틀렸습니다를 받을 수 있을 것입니다.

portableangel   4년 전

지금 작성하신 코드는 x좌표와 y좌표를 따로 정렬하는 작업을 입력받은 점의 개수만큼 반복하는 코드입니다.

O(NlogN) 정렬을 N번 하신 데다, 입출력 량이 꽤 많은데 cin, cout, endl 등의 느린 입출력 함수를 사용하신 점까지 시간 초과의 요소가 됩니다.

우선 정렬은 N번 할 필요가 없고, X와 Y의 값을 묶어서 정렬해야 합니다. 지금은 예를 들어, 점이 세 개

1 3

2 2

3 1

이 존재한다면, x좌표를 따로 정렬하고 y좌표를 따로 정렬하여

1 1

2 2

3 3

이 됩니다. 그런데 입력된 점에는 (1,1)도 없고 (3,3)도 없습니다.

페어(std::pair)로 묶어서 정렬하시거나, 구조체를 이용해 보세요.

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