반응형
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
- 정수론
- 해시를사용한집합과맵
- 백준알고리즘
- Image Classification
- 논문구현
- C++
- MySQL
- 소수판정
- 프로그래머스연습문제
- 다이나믹프로그래밍
- C
- 수학
- 문자열
- 그리디알고리즘
- 자료구조
- 이분탐색
- 사칙연산
- 논문리뷰
- 프로그래머스
- 프로그래머스sql
- 구현
- 브루트포스알고리즘
- 백준
- 그리디
- SQL
- 정렬
- 프로그래머스코딩테스트
- 큐
- C언어
- 이진탐색
Archives
- Today
- Total
초보 개발자의 이야기, 릿허브
[C++] 백준 11561번 좌표 정렬하기 2 본문
728x90
반응형
1. 문제이해
https://www.acmicpc.net/problem/11651
2차원 평면위의 좌표들을 y좌표가 증가하는 순으로,
y좌표가 같다면 x좌표가 증가하는 순으로 정렬하는 프로그램을 구현하는 것이 목표이다.
2. 문제풀이
2차원 평면 좌표를 y좌표 순으로 정렬하되, y좌표가 같다면 x좌표 순으로 정렬하는 것이 목표이다.
이전에 풀이한 11650번 좌표 정렬하기와 흡사한 문제이다.
해당 문제에서는 x좌표 순으로 정렬해줬다면, 이번 문제는 y좌표 순으로 정렬해준다는 차이가 있다.
이전 풀이한 문제의 cmp 함수에서 y좌표 순으로 정렬, 같으면 x좌표 순으로 정렬한다는 점만 수정해주면 된다.
자세한 풀이 방법은 아래 포스팅을 참고하자.
https://beginnerdeveloper-lit.tistory.com/110
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; } )
문제에 대한 질문이나 지적은 언제나 감사히 받고 있습니다.😊
728x90
반응형
'코딩테스트 > 📗 백준 (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 |