본문 바로가기
문제 해결/BaekJoon

[백준] [C++] 5576번 콘테스트

by WSLim_97 2023. 1. 13.
반응형

https://www.acmicpc.net/problem/5576

 

5576번: 콘테스트

최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다. 이번이 두 대

www.acmicpc.net


코드

#include <iostream>
using namespace std;

void Sort(int arr[], int count);

const int COUNT = 10;

int main()
{
	int wUni[COUNT] = { };
	int kUni[COUNT] = { };
	int input, wSum = 0, kSum = 0;

	for (int i = 0; i < COUNT; i++)
	{
		cin >> input;
		wUni[i] = input;
	}

	for (int i = 0; i < COUNT; i++)
	{
		cin >> input;
		kUni[i] = input;
	}

	Sort(wUni, COUNT);
	Sort(kUni, COUNT);

	for (int i = 0; i < 3; i++)
	{
		wSum += wUni[i];
		kSum += kUni[i];
	}

	cout << wSum << " " << kSum << endl;

	return 0;
}

void Sort(int arr[], int count)
{
	for (int i = 0; i < count; i++)
	{
		int max = -1;
		int maxIndex = 0;
		for (int j = i + 1; j < count; j++)
		{
			if (max < arr[j])
			{
				max = arr[j];
				maxIndex = j;
			}

			if (j == count - 1 && arr[i] < arr[maxIndex])
			{
				int temp = arr[i];
				arr[i] = arr[maxIndex];
				arr[maxIndex] = temp;
			}
		}
	}
}

풀이

W대학과 10명과 K대학 10명의 점수를 입력받아 각 대학생의 점수 중 제일 점수가 큰 3명의 점수를 합한 것이 각 대학의 득점으로 하기로 했다. 그 합을 구한 후 출력하는 문제이다.

 

먼저 점수를 입력받아 각 배열에 입력한 뒤 내림차순으로 정렬하여 첫 0, 1, 2 인덱스의 값을 더해 그 값을 출력하였다.

반응형