c++

백준 c++ 2476 문제 풀이

psb08 2025. 4. 5. 12:01
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