
1. 문제 풀이 아이디어
- 2차원 배열을 생성해 각 인덱스와 값을 저장한 뒤, 이를 정렬하여 문제를 해결한다.
2. 나의 정답 코드
StreamReader sr = new(Console.OpenStandardInput());
StreamWriter sw = new(Console.OpenStandardOutput());
int[][] score = new int[8][];
for (int i = 0; i < 8; i++)
{
score[i] = new int[2];
}
int[] result = new int[5];
for (int i = 0; i < 8; i++)
{
score[i][0] = i + 1;
score[i][1] = int.Parse(sr.ReadLine());
}
Array.Sort(score, (o1, o2) => o2[1]-o1[1]);
int sum = 0;
for(int i = 0;i < 5;i++)
{
sum+= score[i][1];
result[i]= score[i][0];
}
Array.Sort(result);
Console.WriteLine($"{sum}\n{result[0]} {result[1]} {result[2]} {result[3]} {result[4]}");
sr.Close();
sw.Close();
3. 정리
- C#에서 배열의 배열을 생성할 때는 각 행의 크기를 개별적으로 초기화해야 한다.
- 입력 값을 읽으며, 각 행에 인덱스와 값을 저장한다.
Array.Sort
를 사용하여 값(score[i][1]
)을 기준으로 내림차순 정렬한다.
- 상위 5개의 값만 선택해 합계를 구하고, 해당 인덱스를
result
배열에 저장한다.
Array.Sort
를 사용해result
배열을 오름차순 정렬한다.
- 최종적으로 합계와
result
배열을 출력하여 문제를 해결한다.
Share article