반응형
[ 문제 ]
지민이는 주사위 던지기 게임을 좋아하여 어느 날 옆에 있는 동호를 설득하여 주사위 던지기 게임을 하자고 하였다. 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2 ≤ 20), S3(2 ≤ S3 ≤ 40)개의 면이 있다. (실제로는 주사위가 6개의 면이 있는 것이 정상이지만 특별한 주사위라 생각하자.)
문제는 세 개의 주사위를 동시에 던졌을 때 가장 높은 빈도로 나오는 세 주사위의 합을 구하는 것이다.
예를 들어, S1 = 3, S2 = 2, S3 = 3으로 주어질 때, 주사위1은 S1(3)개의 면이 있으므로 1, 2, 3의 눈을 가지고, 주사위2는 S2(2)개의 면이 있으므로 1, 2의 눈을 가지며, 주사위3은 S3(3)개의 면이 있으므로 1, 2, 3의 눈을 가진다. 이 때, 이 3개의 주사위를 던져서 눈의 합을 구하면, (1, 1, 1) = 3, (1, 1, 2) = 4, (1, 1, 3) = 5, ... , (3, 2, 1) = 6, (3, 2, 2) = 7, (3, 2, 3) = 8과 같은 합들을 얻을 수 있다. 이 때, 가장 많이 발생하는 합을 구하는 것이다.
[ 코드 ]
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
string[] n = sr.ReadLine().Split();
int s1 = int.Parse(n[0]);
int s2 = int.Parse(n[1]);
int s3 = int.Parse(n[2]);
int[] arr = new int[s1 + s2 + s3 + 1];
for(int i = 1; i <= s1; i++)
{
for(int j = 1; j <= s2; j++)
{
for(int k = 1; k <= s3; k++)
{
int sum = i + j + k;
arr[sum]++;
}
}
}
int max = arr[0];
int maxIndex = 0;
for(int i = 3;i < arr.Length; i++)
{
if (arr[i] > max)
{
max = arr[i];
maxIndex = i;
}
}
sw.Write(maxIndex);
sw.Flush();
sr.Close();
sw.Close();
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/1233
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 4134번 다음 소수 (0) | 2024.03.03 |
---|---|
[C#] 백준 2605번 줄 세우기 (0) | 2024.03.03 |
[C#] 백준 1297번 TV 크기 (0) | 2024.03.02 |
[C#] 백준 1964번 오각형, 오각형, 오각형… (0) | 2024.03.02 |
[C#] 백준 1225번 이상한 곱셈 (2) | 2024.03.01 |