12개의 배열에 (배열개수는 짝수로 한정) 정수가 쭈루룩 있는거야.
그럼 그 정수들중에 가장 작은친구랑 가장 큰 친구를
배열개수 = n 일때 3n/2 -2 의 비교로만 구하래.
이게 뭔 개소리일까...
근데 한 10분 고민했나
2칸 단위로 큰건 짝수칸, 작은건 홀수칸 정렬하고나면 2칸당 정렬이 끝난거지.(n/2번)
그 다음은 홀짝기준으로 비교하면 홀수칸끼리 비교하면 제일 큰 놈이 나오고
짝수칸끼리만 하면 제일 작은 놈이 나옴.
이걸 또 짝수기준으로 설명하면
0 2 4 6 8 10 인덱스일때
(0,2), (4, 6), (8, 10) << 이렇게 서로 정렬시켜 그럼 0 4 8에 제일 작은 수만 담기겠지
그럼 그 다음 루프는 4단위로 돌려서 (0, 4) 비교해 그럼 0에 작은수
그 다음 마지맏 0, 8비교하면 0이 제일 작은수가 나오는거임 ㅇㅅㅇ
근데 난 이게 효율적인건지는 모르겠음
조건대로 비교회수는 맞췄지만 swap함수를 남발해버렸기때문에...
그거까지 분석은 안되는데 여하튼 문제는 풀었다 이거지.
스스로가 존내게 신기함
- dc official App
댓글 0