백준 11651 c++

magicdrill·2024년 4월 4일
0

백준 문제풀이

목록 보기
258/655

백준 11651 c++

#include <iostream>
#include <algorithm>

using namespace std;

struct coordinate {
	int x;
	int y;
};

int input(int lower, int upper);
void input_coordinate_array(coordinate* array, int size);
void sort_coordinate_array(coordinate* array, int size);
bool compare(coordinate front, coordinate back);
void print_struct_array(coordinate* array, int size);

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N;
	coordinate* xy_arr;

	N = input(1, 100000);
	xy_arr = new coordinate[N];
	input_coordinate_array(xy_arr, N);
	sort_coordinate_array(xy_arr, N);
	print_struct_array(xy_arr, N);

	delete[] xy_arr;

	return 0;
}

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void input_coordinate_array(coordinate* array, int size)
{
	int i;

	for (i = 0; i < size; i++)
	{
		array[i].x = input(-100000, 100000);
		array[i].y = input(-100000, 100000);
	}

	return;
}

void sort_coordinate_array(coordinate* array, int size)
{
	sort(array, array + size, compare);

	return;
}

bool compare(coordinate front, coordinate back)
{
	if (front.y == back.y)
	{
		return front.x < back.x;
	}
	else
	{
		return front.y < back.y;
	}
}

void print_struct_array(coordinate* array, int size)
{
	int i;

	for (i = 0; i < size; i++)
	{
		cout << array[i].x << " " << array[i].y << '\n';
	}

	return;
}

0개의 댓글