C#

백준 C# 11651 문제 풀이

psb08 2024. 9. 22. 21:53
728x90

문제 링크 : https://www.acmicpc.net/problem/11651

목차

1 설명

 

2 내 코드

 

3 문제 풀이 해석 내용

 

4 실행 결과

 

설명

백준 실버 5 문제 입니다.

 

 

내 코드

 StreamWriter _writer = new StreamWriter(Console.OpenStandardOutput());
 StreamReader _reader = new StreamReader(Console.OpenStandardInput());

 int n = int.Parse(_reader.ReadLine());
 List<(int, int)> list = new List<(int, int)>();

 for (int i = 0; i < n; i++)
 {
     string[] str = _reader.ReadLine().Split();
     int x = int.Parse(str[0].ToString());
     int y = int.Parse(str[1].ToString());
     list.Add((x, y));
 }

 var sortList = list.OrderBy(x => x.Item2).ThenBy(x => x.Item1).ToList();

 for (int j = 0; j < n; j++)
 {
     _writer.WriteLine($"{sortList[j].Item1} {sortList[j].Item2}");
 }

 _writer.Close();
 _reader.Close();

 

문제 풀이 해석 내용

 

StreamWriter와 StreamReader 초기화

StreamWriter _writer = new StreamWriter(Console.OpenStandardOutput());
StreamReader _reader = new StreamReader(Console.OpenStandardInput());

StreamWriter를 사용하여 콘솔에 출력할 준비를 합니다.

StreamReader를 사용하여 콘솔로부터 입력을 받을 준비를 합니다.

 

 

입력받기

int n = int.Parse(_reader.ReadLine());
List<(int, int)> list = new List<(int, int)>();

첫 번째 줄에서 정수 n을 읽어들입니다.

좌표 쌍을 저장할 리스트를 초기화합니다.

 

 

좌표 쌍 입력받기

for (int i = 0; i < n; i++)
{
    string[] str = _reader.ReadLine().Split();
    int x = int.Parse(str[0].ToString());
    int y = int.Parse(str[1].ToString());
    list.Add((x, y));
}

반복문을 통해 n개의 좌표 쌍을 입력받습니다.

각 좌표는 공백으로 구분되어 있습니다.

이를 split 하여 x와 y 값을 추출한 후, 리스트에 추가합니다.

 

 

정렬하기

var sortList = list.OrderBy(x => x.Item2).ThenBy(x => x.Item1).ToList();

입력받은 좌표 리스트를 y 값 기준으로 오름차순 정렬합니다.

y 값이 같을 경우, x 값 기준으로 오름차순 정렬합니다.

 

 

정렬된 결과 출력하기

for (int j = 0; j < n; j++)
{
    _writer.WriteLine($"{sortList[j].Item1} {sortList[j].Item2}");
}

정렬된 리스트를 순회하며 각 좌표 쌍을 출력합니다.

 

 

리소스 정리

_writer.Close();
_reader.Close();

사용한 StreamWriter와 StreamReader를 닫아 리소스를 정리합니다.

 

 

 

실행 결과

실행 결과

 

728x90

'C#' 카테고리의 다른 글

백준 C# 15829 문제 풀이  (0) 2024.09.24
백준 C# 10814 문제 풀이  (0) 2024.09.23
백준 C# 11050 문제 풀이  (0) 2024.09.21
백준 C# 28702 문제 풀이  (0) 2024.09.21
백준 C# 10798 문제 풀이  (0) 2024.09.20