728x90
반응형
[백준] C++ & C# 좌표 정렬하기 (11650번) 실버 5
📝 문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
🔎 입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다.
둘째 줄부터 N개의 줄에는 각 점의 x좌표와 y좌표가 주어진다.
좌표는 절댓값이 100,000을 넘지 않는 정수이다.
🔎 출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
🎀 입출력 예시
정답
C++
#include <iostream>
#include <algorithm> // sort 함수를 사용하기 위해 필요
#include <vector>
using namespace std;
int main(){
int n;
cin >> n;
vector<pair<int, int>> arr(n); // 좌표를 저장할 벡터(pair 사용)
// 좌표 입력
for(int i = 0; i < n; i++){
cin >> arr[i].first >> arr[i].second;
}
// 좌표 정렬: 기본적으로 x좌표를 기준으로 정렬되며, x좌표가 같으면 y좌표로 정렬
sort(arr.begin(), arr.end());
// 정렬된 좌표 출력
for (int i = 0; i < n; i++) {
cout << arr[i].first << " " << arr[i].second << '\n';
}
return 0;
}
C#
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
var points = new (int x, int y)[n];
for (int i = 0; i < n; i++)
{
var input = Console.ReadLine().Split();
points[i] = (int.Parse(input[0]), int.Parse(input[1]));
}
var sortedPoints = points.OrderBy(p => p.x).ThenBy(p => p.y);
foreach (var point in sortedPoints)
{
Console.WriteLine($"{point.x} {point.y}");
}
}
}
728x90
반응형
'◆C# > C# : 백준 문제 풀이' 카테고리의 다른 글
[백준] C++ & C# Bank Interest (21633번) (0) | 2024.09.21 |
---|---|
[백준] C++ & C# 웰컴 키트 (30802번) (0) | 2024.09.20 |
[백준] C++ & C# 블랙잭 (2798번) (0) | 2024.09.20 |
[백준] C++ & C# 숫자 카드 2 (10816번) (1) | 2024.09.20 |
[백준] C++ & C# 수 정렬하기 3 (10989번) (0) | 2024.09.20 |