에 있는 sample code 에서는 아래와 같은 예제코드가 있는데,
이 코드를 그대로 사용하면 알고리즘 문제 풀이시에는 문제가 될 수 있습니다.
qsort 의 마지막 인자로 필요한 compare 함수 예제 코드
qsort 의 마지막 인자로 필요한 compare 함수 예제 코드
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
문제의 경우에는 입력값을 sort 해야 하는데, qsort 함수에 필요한 compare 함수 구현시에 예제코드를 그대로 사용하면 overflow 로 문제가 틀리게 됩니다.
문제 본문에 int 범위 전체를 사용하는 입력값을 언급했는데, 별 생각없이 넘어간 게 문제였고, 이런 주의사항은 절대 지나쳐서는 안 되는 사항임을 자주 잊게 되네요. -_-
compare 함수 parameter 설명에 있는 그대로 구현해야 문제가 없게 됩니다.
문제 본문에 int 범위 전체를 사용하는 입력값을 언급했는데, 별 생각없이 넘어간 게 문제였고, 이런 주의사항은 절대 지나쳐서는 안 되는 사항임을 자주 잊게 되네요. -_-
compare 함수 parameter 설명에 있는 그대로 구현해야 문제가 없게 됩니다.
int compare(const void* a, const void* b) {
if (*(int *)a < *(int *)b) {
return -1;
}
else if (*(int *)a == *(int *)b) {
return 0;
}
else {
return 1;
}
}
정확하게 백준 해당 문제에서 해당 코드를 사용해서 틀렸네요.
답글삭제감사합니다.