sj3mo   2년 전

-구현 방법

vector를 선언하고 vector 원소 하나하나가 2칸짜리 array인, 결국에는 2차원 array와 같은 구조체를 생성하였습니다. (15째 줄)

값을 넣은 다음(16째 줄),  sorting(18째 줄) 이후, 값을 출력합니다(20째 줄).

다음과 같은 코드를 통해 정답에 도달했는데, 그 이전에 틀렸던 코드가 왜 틀렸는지 잘 모르겠어서 질문 드립니다 ㅠㅠ

맞은 코드와 달리, 틀린 코드는 sorting 과정을 두번 거칩니다.

문제가 compare 부분에 있다고 생각을 하는데, 왜 틀린지 대충은 알겠지만 정확한 이유를 잘 모르겠습니다

정확히, 어떻게, compare이 반환하는 값에 따라 sorting을 하는 것인지 궁금합니다..!

반례도 들어주신다면 너무 감사하겠습니다 ! 개수 많게 여러 번 해봤는데 답을 못찾았습니다..

djm03178   2년 전

compare 함수의 리턴값의 의미는 "x가 y보다 작은가"에 대한 답입니다. compare2에서는 x=(1,2), y=(2,3)과 같은 인자가 주어졌을 때 false를 반환하게 되므로, (1,2) >= (2, 3)이라는 의미가 됩니다. 즉, 이 결과를 보고 sort 함수는 (1, 2)를 (2, 3)보다 뒤쪽에 배치할 수 있게 됩니다.

sj3mo   2년 전

아 0이라는 것이 그대로 두는 것이라고 생각하고 있었는데, compare값이 0과 1이냐에 따라 각각 누구를 앞/뒤에 배치하는지로 생각하는 것이 좋겠군요. 좋은 답변 감사합니다!

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