1주차(자료구조) - [C++]백준11651 좌표 정렬하기 2

1주차(자료구조) - [C++]백준11651 좌표 정렬하기 2

백준11651 좌표 정렬하기 2 링크

문제

오류

예제 입력

오류


코드

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

bool compare(pair<int, int> x1, pair<int, int> x2) {
	if (x1.second == x2.second)
		return x1.first < x2.first;
	else
		return x1.second < x2.second;
}
int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int N;
	cin >> N;

	vector<	pair<int, int> > arr;
	int x, y;
	for (int i = 0; i < N; i++) {
		cin >> x >> y;
		arr.push_back({ x, y });
	}
	sort(arr.begin(), arr.end(), compare);

	for (auto iter = arr.begin(); iter != arr.end(); iter++) {
		cout << iter->first << " " << iter->second << "\n";
	}
}

설명

C++ STL(표준 템플릿 라이브러리)에서 vector을 사용하여 좌표 x, y값을 저장해주며 sort함수로 정렬해주는데 기본적으로 정렬할때 앞에 있는 x값을 기준이 디폴트인데 비교함수를 넣어서 뒤에 y값부터 정렬하게 설정해주었습니다.

-pair<자료형, 자료형> 변수명; : 하나의 변수에 2가지 값을 저장함

<algorithm>
-sort(시작, 끝, 비교함수) : 배열의 크기만큼 정렬

<vector>
-vector<자료형> 변수명; : 배열 자료구조 사용

결과

오류


© 2022. All rights reserved. 신동민의 블로그