quswotmd5   9년 전

temp1에는 오름차순으로 a를 집어넣은거고 temp2에는 내림차순으로 b를 집어넣어서

temp3에는 오름차순으로 저장된 a의 숫자의 크기 순서대로 0 1 2 3 4를 집어넣었고

temp4에는 b의 크기 순서대로 0,1,2,3,4를 넣어서 temp3에저장된 숫자와 temp4에 저장된

숫자가 4가 될 때를 확인해서 a를 재배열했습니다.

머가 잘못되서 틀린지 모르겠습니다. 도와주세여 ㅠㅠ

hdnua   9년 전

제가 뛰어나게 잘 하는 편은 아닙니다만

1. 이런 문제를 풀 때는 최대 입력 값의 개수만큼 전역 배열을 만들어서 풀면 동적 할당에 관한 난잡한 부분이 제거됩니다.

2. 정렬을 매번 구현하고 계시는데 함수로 뜯어내는 게 보기 좋을 거라고 생각합니다.

3. stdlib 헤더를 포함하셨으니 사용자가 직접 정렬 함수를 만드는 것보다 qsort 함수를 이용하는 게 더 나아보입니다.

4. 사람마다 다르겠으나, 요즘 컴파일러들은 뛰어나서 a[i]라는 문장이 *(a+i)라는 문장보다 딱히 느리고 그렇지 않습니다. 보기 어렵네요.

일단 이 부분만 정리하고 코드를 보시면 좀 더 말끔하게 버그를 찾을 수 있을 거라 생각합니다. 느긋하게 풀어도 30줄 안팎으로 문제가 해결되거든요.

quswotmd5   9년 전

조언 감사합니다!~~ 많은 도움이 됬습니다!!

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