728x90
문제 링크 : https://www.acmicpc.net/problem/2476
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 브론즈 3 문제 입니다.
문제명 : 주사위 게임
내 코드
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int N;
cin >> N;
int max_prize = 0;
for (int i = 0; i < N; ++i)
{
int a, b, c;
cin >> a >> b >> c;
int prize = 0;
if (a == b && b == c)
{
prize = 10000 + a * 1000;
}
else if (a == b || a == c)
{
prize = 1000 + a * 100;
}
else if (b == c)
{
prize = 1000 + b * 100;
}
else
{
prize = max({ a, b, c }) * 100;
}
if (prize > max_prize)
{
max_prize = prize;
}
}
cout << max_prize << endl;
}
문제 풀이 해석 내용
입력 처리 / 최대 상금 초기화
int N;
cin >> N;
int max_prize = 0;
첫 줄에서 게임의 수 N을 입력받습니다.
max_prize 변수를 초기화하여 최대 상금을 저장할 준비를 합니다.
게임 반복 처리
for (int i = 0; i < N; ++i)
{
int a, b, c;
cin >> a >> b >> c;
for 루프를 사용하여 N번 반복하면서 각 게임의 주사위 값을 입력받습니다.
상금 계산
int prize = 0;
if (a == b && b == c)
{
prize = 10000 + a * 1000;
}
else if (a == b || a == c)
{
prize = 1000 + a * 100;
}
else if (b == c)
{
prize = 1000 + b * 100;
}
else
{
prize = max({ a, b, c }) * 100;
}
각 주사위 값 a, b, c에 따라 상금을 계산합니다:
모두 동일: a == b && b == c인 경우, 상금은 10000 + a * 1000입니다.
두 개 동일: 두 주사위가 동일한 경우, 상금은 1000 + a * 100입니다.
모두 다름: 모두 다른 경우, 가장 큰 주사위 값에 100을 곱한 값입니다.
최대 상금 업데이트
if (prize > max_prize)
{
max_prize = prize;
}
현재 게임에서 계산한 상금이 max_prize보다 크면, max_prize를 업데이트합니다.
결과 출력
cout << max_prize << endl;
}
모든 게임을 처리한 후, 최대 상금을 출력합니다.
실행 결과
728x90
'c++' 카테고리의 다른 글
백준 c++ 1152 문제 풀이 (0) | 2025.04.07 |
---|---|
백준 c++ 11723 문제 풀이 (0) | 2025.04.06 |
백준 c++ 2562 문제 풀이 (0) | 2025.04.04 |
백준 c++ 2738 문제 풀이 (0) | 2025.04.03 |
백준 c++ 1264 문제 풀이 (0) | 2025.04.02 |