백준 11651 : 좌표 정렬하기 2

이전 문제랑 별 다를 거 없는 문제..

 

이전 문제에서 compare만 조금 바꿔서 넣으면 된다.

 

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

typedef struct arr {
	int x;
	int y;
} axis;

int compare(const void *a, const void *b) {
	axis p1 = *(axis *)a;
	axis p2 = *(axis *)b;
	
	if(p1.y > p2.y)
		return 1;
	else if(p1.y < p2.y)
		return -1;
	else {
		if(p1.x > p2.x)
			return 1;
		else if(p1.x < p2.x)
			return -1;
		else
			return 0;
	}
}

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

	qsort(res, N, sizeof(axis), compare);
	
	for(int i=0;i<N;i++)
		printf("%d %d\n", res[i].x, res[i].y);
}

int main() {
	solve();
	return 0; 
}

 

확실한건 문제를 풀다보니까 문제를 볼때 접근방법이 슬슬 생각나기 시작하는데 좋은 징조같다

'백준 (C99) > 정렬 (完)' 카테고리의 다른 글

백준 10814 : 나이순 정렬  (0) 2022.02.06
백준 1181 : 단어 정렬  (0) 2022.02.06
백준 11650 : 좌표 정렬하기  (0) 2022.02.06
백준 1427 : 소트인사이드  (0) 2022.02.05
백준 2108 : 통계학  (0) 2022.02.05