Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 문자열
- 재귀
- Representation Learning
- 구현
- 분할정복
- 논문리뷰
- Multi-Scale Patch
- self supervised learning
- BOJ
- 수학
- 분할 정복
- paper review
- 정렬
- 이분탐색
- c++
- SSL
- 백준
- anomaly detection
Archives
- Today
- Total
갓생살기프로젝트
[백준/BOJ/C++] 11651번 좌표 정렬하기 2 - 정렬 본문
728x90
11651번: 좌표 정렬하기 2
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
1. 문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
2. 입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
3. 출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
4. 풀이
sort함수로 pair클래스를 정렬할 때, first인자를 기준으로 정렬이 된다. y좌표가 증가하는 순으로 정렬을 해야하기 때문에 먼저 입력된 x를 second에 넣어주고, y를 first에 넣어준다. 그 다음 sort함수를 사용해서 정렬하면 y좌표 기준으로 정렬이 된다.
5. 소스코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int N;
cin>>N;
vector<pair<int, int>> arr(N);
for(int i = 0; i < N; i++){
cin>>arr[i].second>>arr[i].first;
}
sort(arr.begin(), arr.end());
for(int i = 0; i < N; i++){
cout<<arr[i].second<<" "<<arr[i].first<<"\n";
}
}#include <iostream>
728x90
'차근차근 알고리즘 > etc.' 카테고리의 다른 글
[백준/BOJ/C++] 10989번 수 정렬하기 3 - 정렬 (0) | 2021.01.29 |
---|---|
[백준/BOJ/C++] 10825번 국영수 - 정렬 (0) | 2021.01.29 |
[백준/BOJ/C++] 2751번 수 정렬하기 2 - 정렬 (0) | 2021.01.29 |
[백준/BOJ/C++] 11650번 좌표 정렬하기 - 정렬 (0) | 2021.01.29 |
[백준/BOJ/C++] 10814번 나이순 정렬 - 정렬 (0) | 2021.01.29 |