알고리즘 공부/백준 문제풀이
2480_백준 [주사위 세개]
yongyongMom
2022. 9. 16. 23:11
SMALL
2022.09.16
브론즈 4
C++ 사용
문제
-- 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.
- 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. ex) a a a -> 10,000 + a*1,000
- 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. ex) a a b -> 1,000 + a*100
- 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. ex) a b c && a<b<c -> c*100
-- 3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.
입력
첫째 줄에 3개의 눈이 빈칸을 사이에 두고 각각 주어진다.
#include <iostream>
using namespace std;
int main() {
int n1, n2, n3;
int reward;
cin >> n1 >> n2 >> n3;
if (n1 == n2) { // 최소 두 개 이상 겹치는 상황
if (n1 == n3) reward = 10000 + (n1 * 1000); // 세 개가 겹치는 상황
else reward = 1000 + (n1 * 100);// 두 개가 겹치는 상황
}
else { // 최대 두 개 이하 겹치는 상황
if (n2 == n3 || n1 == n3) {
reward = 1000 + (n3 * 100);//n3이 겹치는 상황
}
else
{ // 가장 큰 수 구하기
int max = 0;
if (n1 > max) max = n1;
if (n2 > max) max = n2;
if (n3 > max) max = n3;
reward = max * 100;
}
}
cout << reward;
return 0;
}
- 주사위 숫자 n1, n2, n3를 입력받는다.
- 크게 두가지 경우를 고려한다.
1) n1과 n2가 같은 경우 -> n1과 n3가 같거나 다르거나
2) n1과 n2가 다른 경우 -> n1과 n3가 같거나 n2와 n3가 같은 경우 이거나 아니거나
(그냥 코드에 나온거 말로 푼거입니다...) - 숫자 세 개 or 두 개가 같은 경우 문제의 조건에 따라 상금을 계산한다.
- 모둔 숫자가 다른 경우 가장 큰 수를 구한다.
1) 가장 큰 수를 담을 변수 max 정의
2) 각 숫자와 비교하여 가장 큰 수를 구함 - 이 후 문제 조건에 따라 상금을 계산한다.
- 출력하면 끄읕 --!--
이중 if 조건절? 이 맞는지는 모르겠지만
if문 안에 또 if문을 써서 푼 문제입니당
글고 큰 수 구할 때 이 경우는 굳이 max를 정의할 필요는 없었지만 복습할 겸 정의해서 풀었습니다...!
반응형
LIST