baekjoon 11650

호진·2022년 7월 16일
0

baekjoon

목록 보기
18/37

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


Idea

2차원 배열은 qsort를 못 쓰는 줄 알고 혼자 버블정렬, 선택정렬 등 이것저것 다 해봤다.

수많은 실패의 흔적들 ㅋㅋ

2차원 배열 정렬 시간초과를 구글링 해 보다가 구조체를 써서 정렬을 하라네?? 이유는 몰?루
생각해낸게 compare를 손봐서 정렬해보면 되지 않을까? 했다. 그렇게해서 나온게

int compare(const void* a, const void* b) {
	Coor num1 = *(Coor*)a;
	Coor num2 = *(Coor*)b;

	if (num1.x < num2.x) {
		return -1;
	}
	else if (num1.x == num2.x) {
		if (num1.y < num2.y) {
			return -1;
		}
		else {
			return 1;
		}
	}

	return 1;
}

Code

#define _CRT_SECURE_NO_WARNINGS
#define LENGTH 100001
#include <stdio.h>
#include <string.h>

typedef struct _Coor {
	int x;
	int y;
}Coor;

int compare(const void* a, const void* b) {
	Coor num1 = *(Coor*)a;
	Coor num2 = *(Coor*)b;

	if (num1.x < num2.x) {
		return -1;
	}
	else if (num1.x == num2.x) {
		if (num1.y < num2.y) {
			return -1;
		}
		else {
			return 1;
		}
	}

	return 1;
}

int main(void) {
	Coor arr[LENGTH] = { 0, };
	int N;

	scanf("%d", &N);

	for (int i = 0; i < N; i++) {
		scanf("%d %d", &arr[i].x, &arr[i].y);
	}

	qsort(arr, N, sizeof(Coor), compare);

	for (int i = 0; i < N; i++) {
		printf("%d %d\n", arr[i].x, arr[i].y);
	}

	return 0;
}
profile
💭(。•̀ᴗ-)✧

0개의 댓글