

첫째 줄에는 참가 인원 수, 커트라인이 문자열 형식으로 한 줄로 주어지고
둘째 줄에는 각 참가자들의 점수가 주어진다.
참가자 중 2등까지 상을 수여한다고 한다.
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
32
|
using System.IO;
using System.Text;
using System.Linq;
using System.Reflection.PortableExecutable;
namespace 연습장
{
internal class Program
{
static void Main(string[] args)
{
using var reader = new StreamReader(Console.OpenStandardInput());
using var print = new StreamWriter(Console.OpenStandardOutput());
//StringBuilder sb = new StringBuilder();
string[] input = reader.ReadLine().Split();
int N = int.Parse(input[0]);
int cut = int.Parse(input[1]);
string[] getScore = reader.ReadLine().Split();
int[] score = new int[N];
for (int i = 0; i < N; i++)
score[i] = int.Parse(getScore[i]);
Array.Sort(score);
Array.Reverse(score);
print.WriteLine(score[--cut]);
}
}
}
|
cs |
순위를 내림차순 정렬을 한 후, 주어진 커트라인을 이용해 인덱싱을 한다.
참고로 배열은 0번부터 시작하므로 커트라인을 1 감소시켜줘야 한다.
내가 사용한 방법은 데이터의 값을 변형시키므로 코드를 다시 사용해야 할 경우 문제가 될 수 도 있다.
또 다른 방법으로는 그냥 score.Length - cut 을 하면 내림차순 정렬을 할 필요가 없다.

'하루 한 접시' 카테고리의 다른 글
[백준] 10816 숫자 카드 2 [C#] (1) | 2024.03.23 |
---|---|
[백준] 11651번: 좌표 정렬하기 2 [C#] (1) | 2024.03.23 |
[백준] 10814번: 나이 순 정렬[C#] (0) | 2024.03.22 |
[백준] 1427번: 소트인사이드 [C#] (0) | 2024.03.22 |
[백준] 2587번: 대표값2 [C#] (0) | 2024.03.21 |