티스토리 뷰

728x90
반응형

나이, 순서 정보를 함께 저장한 후 문제에서 요구하는 기준에 따라 c언어에 내장된 qsort 함수로 정렬시켰습니다.

#include<stdio.h>
#include<stdlib.h>

int N;

typedef struct member {
	int age;
	char name[200];
	int order;
} MEMBER;

MEMBER members[100020];

int compare(const void* first, const void* second) {
	if (((MEMBER*)first)->age < ((MEMBER*)second)->age) {
		return -1;
	}
	else if (((MEMBER*)first)->age > ((MEMBER*)second)->age) {
		return 1;
	}
	else if (((MEMBER*)first)->age == ((MEMBER*)second)->age) {
		if (((MEMBER*)first)->order < ((MEMBER*)second)->order) {
			return -1;
		}
		else if (((MEMBER*)first)->order > ((MEMBER*)second)->order) {
			return 1;
		}
	}

}

int main(void) {

	scanf_s("%d", &N);

	for (int i = 0; i < N; i++) {
		scanf_s("%d", &(members[i].age));
		scanf_s("%s", members[i].name, 120);
		members[i].order = i;
	}

	qsort(members, N, sizeof(MEMBER), compare);

	for (int i = 0; i < N; i++) {
		printf("%d ", members[i].age);
		printf("%s\n", members[i].name);
	}
}

https://www.acmicpc.net/problem/10814

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함
반응형
250x250