본문 바로가기
백준(C언어)/22년 10월

10월 13일(목) - 정렬(10814번 *복습필요)

by C0MPAS 2022. 10. 13.

정렬 - 10814번

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

 

문제점

1. 12일날 풀이처럼 merge sort를 활용해서는 제대로된 풀이가 불가능한 상황

-> 브루트포스 알고리즘 형태의 풀이라는 것을 찾아냈다

-> 단계별로 풀이하고 있기 때문에, 추후에 브루트포스 쪽 풀이를 하고나서 다시 코드를 확인해야할 것 같다

-> 다만 정렬을 사용하지 않았기 때문에, quick sort를 이용한 풀이도 해보아야할 것 같다

 

풀이 - 1

(브루트포스 알고리즘처럼 풀이)

(출처 - https://solution-is-here.tistory.com/42)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct p {
    int age;
    char name[201];
}w;
w  member[100001];
int main()
{
    int num;
    scanf("%d", &num);
    for (int a = 0; a < num; a++)
    {
        scanf("%d %s", &member[a].age, member[a].name);
    }
    for (int a = 1; a <= 200; a++)
    {
        for (int b = 0; b < num; b++)
        {
            if (a == member[b].age)
                printf("%d %s\n", member[b].age, member[b].name);
        }
    }
}

 

풀이 - 2

(quick sort 풀이)

 

댓글