반응형
<코드>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int N;
cin >> N;
vector<vector<int>> coordinate(N, vector<int>(2, 0));
for (int i = 0; i < N; i++)
{
cin >> coordinate[i][1];
cin >> coordinate[i][0];
}
sort(coordinate.begin(), coordinate.end());
for (int i = 0; i < N; i++)
{
cout << coordinate[i][1] << " " << coordinate[i][0] << "\n";
}
}
문제는 2차원 배열을 사전식으로 배열하듯이 y좌표를 기준으로 정렬하고 y좌표값이 같을 경우 x좌표값을 비교하여 정렬한다. 2차원 배열이기 때문에 단순하게 2차원 배열을 만들어서 sort() 함수로 정렬 시 오류가 발생한다. 따라서 vector 컨테이너를 사용하여 정렬을 한다.
더보기
1. 일반 vector 생성자는 배열의 사이즈, 초기값을 쓴다.
vector<int> arr(10,0); // 10의 크기를 0으로 초기화.
2. 이중 vector도 비슷하게 초기화하여 만들 수 있다.
vector <vector <int>> arr(10, vector <int>(10,0));
// 10의 크기를 vector<int>(10,0)으로 초기화. 즉, 10행 10열의 이중 배열이 생성된다.
vector는 C++의 표준 라이브러리 STL(Standard Template Library)에 있는 컨테이너이며 생성 시 메모리 Heap에 생성되며 동적으로 할당된다. 속도측면에서는 배열에 비해 성능은 떨어지나, 메모리를 효율적으로 관리하고 예외처리가 쉽다는 장점을 가지고 있다.
https://www.acmicpc.net/problem/11651
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[C/C++] 백준 1427번 - 소트인사이드(정렬) (0) | 2020.09.05 |
---|---|
[C/C++] 백준 2108번 - 통계학 (정렬) (0) | 2020.08.26 |
[C/C++] 백준 1436번 - 영화감독 숌 (브루트 포스) (3) | 2020.08.13 |
[C/C++] 백준 1018번 - 체스판 다시 칠하기 (브루트 포스) (0) | 2020.08.13 |
[C/C++] Codeforce 707B - Bakery (0) | 2020.07.03 |