[C++ 백준] 11651 좌표 정렬하기2
728x90
반응형
블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.
문제 설명
- 2차원 평면 위의 점 N개(1 <=N <=100,000)가 주어진 뒤 좌표의 x, y(-100,000 <=x, y <=100,000)가 주어진다.
- 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
풀이 전략
- a와 b의 값을 비교하여 정렬 후 출력한다.
소스 코드
#include <iostream> #include <algorithm> #include <vector> using namespace std; bool Comp(pair<int, int> a, pair<int, int> b) { if (a.second < b.second) return true; else if (a.second == b.second) { if (a.first < b.first) return true; } return false; } int main() { int n; vector<pair<int,int>> vec; cin >> n; for (int i = 0; i < n; ++i) { int x, y; cin >> x >> y; vec.push_back(make_pair(x,y)); } sort(vec.begin(), vec.end(), Comp); for (int i = 0; i < n; ++i) { cout << vec[i].first << ' ' << vec[i].second << '\n'; } }
링크
https://www.acmicpc.net/problem/11651
11651번: 좌표 정렬하기 2
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
728x90
반응형
'문제풀이 > BOJ' 카테고리의 다른 글
[C++ 백준] 1181 단어 정렬 (0) | 2021.08.26 |
---|---|
[C++ 백준] 18870 좌표 압축 (0) | 2021.08.18 |
[C++ 백준] 1929 소수 구하기 (0) | 2021.06.13 |
[C++ 백준] 1065 한수 (0) | 2021.06.12 |
[C++ 백준] 1002 터렛 (0) | 2021.06.09 |
댓글
이 글 공유하기
다른 글
-
[C++ 백준] 1181 단어 정렬
[C++ 백준] 1181 단어 정렬
2021.08.26 -
[C++ 백준] 18870 좌표 압축
[C++ 백준] 18870 좌표 압축
2021.08.18 -
[C++ 백준] 1929 소수 구하기
[C++ 백준] 1929 소수 구하기
2021.06.13 -
[C++ 백준] 1065 한수
[C++ 백준] 1065 한수
2021.06.12
댓글을 사용할 수 없습니다.