c c++ 언어 공부
백준 2476번 : 주사위 게임 (C 언어)
Code C
2023. 10. 31. 12:49
https://www.acmicpc.net/problem/2476
2476번: 주사위 게임
첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다.
www.acmicpc.net
Code:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include <stdio.h>
#include <limits.h>
int main() {
int t;
scanf("%d", &t);
int a, b, c;
int max = INT_MIN;
while (t--)
{
int cost = 0;
scanf("%d %d %d", &a, &b, &c);
if (a == b && b == c && a==c)
{
cost = 10000 + a * 1000;
}
else if(a==b&&a!=c&&b!=c)
{
cost = 1000 + a * 100;
}
else if (a == c && a != b && b != c)
{
cost = 1000 + a * 100;
}
else if (c == b && a != c && b != a)
{
cost = 1000 + b * 100;
}
else
{
int cnt;
cnt = (a > b) ? a : b;
cnt = (cnt > c) ? cnt : c;
cost = cnt * 100;
}
if (max < cost)
{
max = cost;
}
}
printf("%d", max);
}
|
cs |
문제 설명:
주어진 문제는 주사위 게임에서 다양한 규칙에 따라 상금을 받는 게임을 N명의 참가자가 플레이하고, 그 중 가장 많은 상금을 받은 사람의 상금을 찾는 것을 요구합니다. 각 참가자는 3개의 주사위를 던집니다. 이 때, 상금을 계산하는 규칙은 다음과 같습니다:
- 같은 눈이 3개가 나오면 10,000원 + (같은 눈) × 1,000원의 상금을 받습니다.
- 같은 눈이 2개만 나오는 경우에는 1,000원 + (같은 눈) × 100원의 상금을 받습니다.
- 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈) × 100원의 상금을 받습니다.
가장 많은 상금을 받은 사람을 찾아야 합니다.
코드 설명:
코드는 각 참가자의 주사위 결과를 받고, 주어진 규칙에 따라 상금을 계산한 후, 최대 상금을 가진 참가자를 찾는 작업을 수행합니다. 다음은 코드의 주요 부분을 설명합니다:
- t를 사용하여 참가자 수를 입력 받습니다.
- 반복문을 사용하여 각 참가자의 주사위 결과를 입력 받고 상금을 계산합니다.
- 조건문을 사용하여 주어진 규칙에 따라 상금을 계산하며, 이를 cost 변수에 저장합니다.
- max 변수를 사용하여 현재까지 가장 큰 상금을 추적합니다.
- 각 참가자마다 cost를 max와 비교하여, 더 큰 상금을 가진 참가자가 나타날 때마다 max를 업데이트합니다.
- 모든 참가자에 대한 반복문이 끝나면, max에 저장된 값은 가장 많은 상금을 받은 참가자의 상금을 나타냅니다.
결과를 출력할 때는 max 값을 출력하면 됩니다.