1. 문제 상세
https://www.acmicpc.net/problem/2480

2. 문제 접근
cin 을 통해 주사위 눈 세 개를 입력받는다.
조건문을 사용하여 모든 눈이 같은 경우, 두 개의 눈만 같은 경우, 모두 다른 경우를 확인.
각 조건에 따라 상금을 계산하여 출력한다.
먼저 모든 눈이 같은 경우, 즉 A = B 이면서 B = C
그리고 아니라면 두 개의 눈이 같은 경우를 확인한다. A = B 또는 A = C 나 B = C 중 하나.
그리고 이외의 경우다.(모두 다른 경우)
모든 눈이 같을 때에는 상금 계산을 위해 A, B, C 중 아무 변수로 계산해도 된다.
하지만 두 개의 눈만 같을 경우 다르다.
먼저 A = B 또는 A = C 인 경우만 먼저 확인하여 맞다면 A를 사용하여 상금을 계산한다.
아니라면 B = C 를 확인하여 맞을 때 B를 사용하여 상금을 계산한다.
그리고 마지막 모든 눈이 다른 경우, 가장 큰 눈을 찾아야 한다.
max() 함수와 같이 최대값을 찾아주는 함수가 있지만 비교 할 값들이 적기 때문에 조건문으로 작성해 보았다.
최대값을 저장할 변수를 만든다(변수 X).
먼저 A와 B를 비교하여 큰 쪽을 X에 저장, 그리고 X를 C와 비교하여 C가 더 크다면 X에 C를 저장하여 최대값을 구한다.
이제 X를 사용하여 상금을 계산한다.
마지막으로 상금을 출력한다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int A, B, C, X, Reword;
cin >> A >> B >> C;
if(A == B && B == C)
Reword = 10000 + A * 1000;
else if(A == B || A == C)
Reword = 1000 + A * 100;
else if(B == C)
Reword = 1000 + B * 100;
else {
if(A > B) X = A;
else X = B;
if(X < C) X = C;
Reword = X * 100;
}
cout << Reword;
}
정수형 변수 A, B, C, X, Reword 를 선언한다.
cin 으로 주사위 눈 세개를 입력받아 각각 A, B, C 에 저장한다.
조건문으로 주사위 눈이 모두 같은 경우를 확인한다.(A == B, B==C)
상금(Reword)에 10000 + A * 1000 을 저장한다.
위의 조건이 아닌 경우 주사위 눈이 두 개만 같은 경우를 확인한다.
먼저 A와 B 또는 A와 C가 같은지 확인.
같다면 상금(Reword)에 1000 + A * 100 을 저장한다.
다르다면 B와 C가 같은지 확인하고 맞다면 상금(Reword)에 10000 + B * 1000 을 저장한다.
위의 조건들이 아닌 경우, 모든 눈이 다른 경우이기 때문에 주사위 눈 중 가장 큰 눈을 찾는다.
조건문으로 A와 B를 비교하여 A가 크다면 X에 A의 값을, 아니라면 X에 B의 값을 저장한다. 즉 더 큰 값을 X에 저장한다.
그리고 다시 조건문으로 X와 C를 비교하여 C가 크다면 X에 C의 값을 저장한다.
그리고 상금(Reword)에 X * 100 을 저장한다.
마지막으로 cout 으로 상금(Reword)을 출력한다.
4. 성능 확인

최대값 찾을 때 위가 max 함수를 사용한 코드고 아래가 조건문만 사용한 코드.
5. 마무리
조건문을 통해 최대값 찾기를 해봤다.
비교 대상이 3개 뿐이라 짧게 끝났지만 비교 대상이 많아진다면 최대값 찾는 함수 쓰자..
'백준 - 단계별로 풀어보기 > 조건문' 카테고리의 다른 글
[백준] 2525번 : 오븐 시계 | C++ (0) | 2023.09.15 |
---|---|
[백준] 2884번 : 알람 시계 | C++ (0) | 2023.09.15 |
[백준] 14681번 : 사분면 고르기 | C++ (0) | 2023.09.14 |
[백준] 2753번 : 윤년 | C++ (0) | 2023.09.14 |
[백준] 9498번 : 시험 성적 | C++ (0) | 2023.09.14 |