Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- HTTP
- dfs
- SQL
- GIT
- 스프링
- 도커
- 다이나믹 프로그래밍
- 이분탐색
- 순열
- 그리드
- 자료구조
- 자바
- CI/CD
- 그래프
- 브루트포스
- github action
- 알고리즘
- BFS
- 분할정복
- 백준
- 역방향 반복자
- 재귀
- AWS
- 컴퓨터 네트워크
- 다이나믹프로그래밍
- 트리
- 그리드 알고리즘
- 분할 정복
- TCP
- Spring
Archives
- Today
- Total
코딩성장스토리
백준 11650:좌표 정렬하기 본문
https://www.acmicpc.net/problem/11650
11650번: 좌표 정렬하기
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
이번 문제는 pair함수를 처음으로 사용해봤다. pair은 두가지 자료형을 한번에 다룰수 있기에 좌표에 유용하게 사용이 가능하다.
make_pair(first,second)로 pair값 지정 가능하다
#include<iostream>
#include<vector>
#include<cmath>
#include<string>
#include<algorithm>
#include<set>
#define PI 3.1415926535
using namespace std;
bool compare(pair<int,int> left, pair<int,int> right) //좌표값 비교
{
if (left.first == right.first) { //x값이 같으면
return left.second<right.second; //y값 비교
}
return left.first<right.first; //x값 비교
};
int main()
{
int t;
vector<pair<int,int>> temp;
cin >> t;
while (t--) {
int x, y;
cin >> x>> y;
temp.push_back(make_pair(x, y));
}
sort(temp.begin(), temp.end(), compare); //정렬
int len = temp.size();
for (int i = 0; i < len; i++) {
cout << temp[i].first << ' ' << temp[i].second << '\n';
}
return 0;
}
'백준 코딩' 카테고리의 다른 글
백준 18870번:좌표 압축 (0) | 2021.09.25 |
---|---|
백준:10814번:나이순 정렬 (0) | 2021.09.25 |
백준 1181번 :단어정렬 (0) | 2021.09.25 |
백준 2108번:통계학 (0) | 2021.09.25 |
백준 10989번 : 수 정렬하기3( count 정렬) (0) | 2021.09.25 |