상세 컨텐츠

본문 제목

[c언어] 코딩도장 73.7 퀵 정렬 함수 사용하기 문제 풀이

c언어

by ~지우~ 2021. 7. 9. 15:08

본문

728x90

오늘은 코딩도장 73.7 심사문제 풀이를 해보겠습니다.

 

<문제>표준 입력으로 길이 10 이하의 문자열이 10개 입력됩니다(중복 값은 없습니다). 다음 소스 코드를 완성하여 입력된 문자열이 내림차순으로 정렬되도록 만드세요.

 

퀵 정렬 함수에는 정렬할 배열, 요소 개수, 요소 크기, 비교 함수를 넣어줍니다.

비교 함수는 int형 반환값을 가지고,  const void 포인터 매개변수가 두 개 있습니다. 

오름차순 정렬 조건은

  • a < b일 때는 -1 return
  • a > b일 때는 1 return
  • a == b일 때는 0 return

내림차순 정렬 조건은

  • a < b일 때는 1 return
  • a > b일 때는 -1 return
  • a == b일 때는 0 return

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int compare(const void *a, const void *b){
    return strcmp((char *)b, (char *)a);
}

int main()
{
    char s1[10][20];

    scanf("%s %s %s %s %s %s %s %s %s %s", 
        s1[0], s1[1], s1[2], s1[3], s1[4], s1[5], s1[6], s1[7], s1[8], s1[9]
    );

    qsort(s1, sizeof(s1) / sizeof(s1[0]), sizeof(s1[0]), compare);

    for (int i = 0; i < 10; i++)
    {
        printf("%s ", s1[i]);
    }

    printf("\n");

    return 0;
}
728x90

관련글 더보기

댓글 영역