Computer Science/Algorithm Problem

백준] 1233 - 주사위(USACO 2008)

TwinParadox 2018. 8. 31. 22:05
728x90

시간 제한 : 2초

메모리 제한 : 128MB




입력

입력 파일의 첫째 줄에 정수 S1, S2, S3가 주어진다.




출력

출력 파일의 첫째 줄에 가장 높은 빈도로 나오는 세 주사위 합을 구하는 것이다. 단 답이 여러개라면 가장 합이 작은 것을 출력한다.




소스코드

#include <iostream>
using namespace std;
int main(void)
{
	int s1, s2, s3, arr[81] = { 0, };
	cin >> s1 >> s2 >> s3;

	for (int i = 1; i <= s1; i++)
		for (int j = 1; j <= s2; j++)
			for (int k = 1; k <= s3; k++)
				arr[i + j + k]++;

	int max = 0, ans = 0;
	for (int i = 1; i <= 80; i++)
		if (arr[i] > max)
			max = arr[i], ans = i;

	cout << ans;
}




Tip

가능한 경우를 모두 카운팅하여 최대값을 구하는 방법으로 문제를 쉽게 풀 수 있다.



728x90