일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문자열
- 백준알고리즘
- 프로그래머스코딩테스트
- 큐
- 정수론
- 구현
- 수학
- 그리디알고리즘
- C++
- 프로그래머스연습문제
- 그리디
- 브루트포스알고리즘
- 다이나믹프로그래밍
- 사칙연산
- 이분탐색
- 백준
- 논문구현
- 논문리뷰
- 소수판정
- 프로그래머스sql
- Image Classification
- MySQL
- 해시를사용한집합과맵
- C
- SQL
- C언어
- 프로그래머스
- 정렬
- 자료구조
- 이진탐색
- Today
- Total
초보 개발자의 이야기, 릿허브
[C++] 백준 11561번 좌표 정렬하기 2 본문
1. 문제이해

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
2차원 평면위의 좌표들을 y좌표가 증가하는 순으로,
y좌표가 같다면 x좌표가 증가하는 순으로 정렬하는 프로그램을 구현하는 것이 목표이다.
2. 문제풀이
2차원 평면 좌표를 y좌표 순으로 정렬하되, y좌표가 같다면 x좌표 순으로 정렬하는 것이 목표이다.
이전에 풀이한 11650번 좌표 정렬하기와 흡사한 문제이다.
해당 문제에서는 x좌표 순으로 정렬해줬다면, 이번 문제는 y좌표 순으로 정렬해준다는 차이가 있다.
이전 풀이한 문제의 cmp 함수에서 y좌표 순으로 정렬, 같으면 x좌표 순으로 정렬한다는 점만 수정해주면 된다.
자세한 풀이 방법은 아래 포스팅을 참고하자.
https://beginnerdeveloper-lit.tistory.com/110
[C++] 백준 11650번 좌표 정렬하기
1. 문제이해 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤..
beginnerdeveloper-lit.tistory.com
3. 소스코드
#include <iostream>
#include <algorithm>
using namespace std;
class coordinate {
public:
int x; // x좌표
int y; // y좌표
};
bool cmp(coordinate a, coordinate b) {
// y좌표가 증가하는 순으로 정렬하되,
// y좌표가 같으면 x좌표가 증가하는 순서대로 정렬
if (a.y == b.y) {
return a.x < b.x;
}
else {
return a.y < b.y;
}
}
coordinate* c = new coordinate[100000];
int main() {
int N;
int numx, numy;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> c[i].x >> c[i].y;
}
stable_sort(c, c + N, cmp);
for (int i = 0; i < N; i++) {
cout << c[i].x << " " << c[i].y << "\n";
}
return 0;
}
bool cmp 함수의 부분만 살짝 수정해주었다.
y좌표가 같다면, x좌표가 증가하는 순서대로 정렬, ( if (a.y == b.y) { return a.x < b.x; } )
같지 않다면, y좌표가 증가하는 순서대로 정렬되도록 했다. ( else { return a.y < b.y; } )
문제에 대한 질문이나 지적은 언제나 감사히 받고 있습니다.😊
'코딩테스트 > 📗 백준 (BOJ)' 카테고리의 다른 글
[C++] 백준 13022번 늑대와 올바른 단어 (0) | 2022.02.07 |
---|---|
[C++] 백준 1158번 요세푸스 문제 (0) | 2022.02.04 |
[C++] 백준 1912번 연속합 (0) | 2022.02.01 |
[C++] 백준 2581번 소수 (0) | 2022.01.30 |
[C++] 백준 15903번 카드 합체 놀이 (0) | 2022.01.29 |