반응형

● 문제 접근 과정

1. 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

2.백터로 값을 받고, 해당 값을 sort 정렬 해주면 끝.

● 구현

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

int main() {
  int N;
  cin >> N; // 사용자로부터 좌표 쌍의 개수 N을 입력 받음

  vector<pair<int, int>> v; // pair<int, int> 형식의 좌표 쌍을 저장할 벡터 생성
  /*
  벡터는 동적 배열을 나타내며, 여러 값을 한 번에 저장하고 관리할 수 있는 유용한
  데이터 구조 pair<int, int>는 두 개의 int형 값으로 이루어진 쌍을 의미합니다.
  즉, pair<int, int>는 두 개의 정 수값을 저장하는 구조체입니다.
  */

  // N개의 좌표 쌍을 입력 받아 벡터에 저장
  for (int i = 0; i < N; i++) {
    int x, y;
    cin >> x >> y;       // 좌표 쌍의 x값과 y값을 입력 받음
    v.push_back({x, y}); // 입력 받은 좌표 쌍을 벡터에 추가
  }

  // 벡터 v를 x값을 기준으로 오름차순으로 정렬
  sort(v.begin(), v.end());

  // 정렬된 좌표 쌍을 출력
  for (int i = 0; i < N; i++) {
    cout << v[i].first << ' ' << v[i].second << '\n'; // 정렬된 좌표 쌍을 출력
  }

  return 0;
}

 

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

 

 
 
반응형

+ Recent posts