[알고리즘 문제 풀기] 점수 계산(2822)

C#
lhs's avatar
Jan 23, 2025
[알고리즘 문제 풀기] 점수 계산(2822)
notion image

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

LHS's Study Space