[백준 5576] 콘테스트 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
10개의 점수 중 상위 3개의 점수를 골라 합산하여 출력하는 문제입니다.
- 총 두 줄로 구성된 입력은 W 대학과 K 대학의 각각 10명 점수를 나타냅니다.
- 각 대학의 상위
3
명 점수를 골라 합한 값을 각각 출력하면 됩니다.
접근법
- 각 대학 점수
10
개를 입력받고, 내림차순 정렬하여 상위3
개의 점수를 추출합니다. - 상위
3
개 점수의 합을 계산한 후 출력합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Linq;
class Program {
static void Main() {
var w = new int[10];
var k = new int[10];
for (int i = 0; i < 10; i++)
w[i] = int.Parse(Console.ReadLine());
for (int i = 0; i < 10; i++)
k[i] = int.Parse(Console.ReadLine());
var sumW = w.OrderByDescending(x => x).Take(3).Sum();
var sumK = k.OrderByDescending(x => x).Take(3).Sum();
Console.WriteLine($"{sumW} {sumK}");
}
}
[ C++ ]
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
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vi tmp(10);
for (int i = 0; i < 10; i++)
cin >> tmp[i];
sort(tmp.rbegin(), tmp.rend());
int sumW = tmp[0] + tmp[1] + tmp[2];
for (int i = 0; i < 10; i++)
cin >> tmp[i];
sort(tmp.rbegin(), tmp.rend());
int sumK = tmp[0] + tmp[1] + tmp[2];
cout << sumW << " " << sumK << "\n";
return 0;
}