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 |
Tags
- 백준 #boj
- flutter #app #취준
- flutter #깃
- 백준 #c++
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- baekjoon #boj #c++
- firebase #파이어베이스
- flutter #firebase #플러터 #파이어베이스 #연동
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- 백준
- flutter #플러터
- Flutter
- baekjoon #백준 #boj
- unity #2d-game
- 비주얼스튜디오 #코드스니펫
- 비주얼 스튜디오 #vs #visual studio
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- flutter #상태관리
- boj #baekjoon #c++
- boj #baekjoon
- flutter #todolist
- git #unity #깃허브
- flutter #git
- 플러터 #flutter #restful #rest api
- boj #c++
- 로컬저장소 #이름변경
- unity #2d-game #minigame #vscode
- VS #비주얼스튜디오
- flutter #플러터 #분석
- 백준 #boj #baekjoon
Archives
- Today
- Total
cococo-coding
11651번. 좌표 정렬하기 2 본문
문제
풀이
백준의 11650번. 좌표 정렬하기 문제와 유사하다.
(11650번 문제: https://www.acmicpc.net/problem/11650 )
다른 점은 11650번은 x좌표->y좌표 순으로 오름차순 정렬이었다면
이 문제는 반대로 y좌표-> x좌표 순의 오름차순 정렬이라는 것이다.
11650번의 경우는 아래의 코드처럼 sort만 쓰면 자동으로 정렬이 되었다.
//11650번
sort(v.begin(), v.end());
반면 이번 문제는 y좌표를 먼저 비교하고, 그 이후에 x좌표를 비교해야 하기 때문에 따로 사용자정의함수를 만들었다.
//11651번
//y좌표를 먼저 비교하고 x좌표를 비교하는 함수 생성
bool cmp(pair <int, int> a, pair <int, int> b) {
if(a.second==b.second) //y좌표가 같은 경우
return a.first<b.first; //x좌표를 비교해서 작은 것을 앞으로 배치한다.
}
else{
return a.second<b.second;
}
}
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
1. 점의 개수 n을 입력받는다.
2. n개의 점들의 좌표를 입력받는다.
3. 각 점들을 y좌표>x좌표 순으로 오름차순 정렬한다.
4. 정렬한 좌표들을 출력한다.
*/
vector<pair<int,int>> v; //벡터 생성
bool cmp(pair<int, int> a, pair<int, int> b)
{
if(a.second==b.second){ //y좌표가 같은 경우
return a.first<b.first;
}
else{
return a.second<b.second;
}
}
int main() {
//1
int n;
cin >> n;
//2
int x,y;
for (int i = 0; i < n; i++){
cin >> x >> y;
v.push_back({x,y}); //좌표 입력받기
}
//3
sort(v.begin(), v.end(), cmp);
//4
for(int i=0; i<n; i++){
cout << v[i].first << ' ' << v[i].second << '\n';
}
return 0;
}
'[BOJ] 코드 모음 > C++_learning 문제집' 카테고리의 다른 글
10768번. 특별한 날 (c++풀이) (0) | 2024.01.09 |
---|---|
5524번. 입실 관리 (c++ 풀이) (3) | 2024.01.09 |
11650번. 좌표 정렬하기 (1) | 2024.01.07 |
2857번. FBI (c++풀이) (0) | 2024.01.07 |
4999번. 아! (c++ 풀이) (0) | 2024.01.07 |