반응형
https://www.acmicpc.net/problem/2480
2480번: 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개
www.acmicpc.net
코드
#include <stdio.h>
int main() {
int a[3];
int max,money = 0;
for(int i = 0; i < 3; i++) {
scanf("%d",&a[i]);
}
if(a[0] == a[1] && a[1] == a[2]) {
money = 10000 + a[0] * 1000;
}
else if(a[0] == a[1] || a[0] == a[2]) {
money = 1000 + a[0] * 100;
}
else if(a[1] == a[2]) {
money = 1000 + a[1] * 100;
}
else {
for(int i = 0; i < 3; i++) {
if(max < a[i])
{
max = a[i];
}
}
money = max * 100;
}
printf("%d",money);
return 0;
}
☞ 풀이 전
정수형 데이터 3개를 넣을 수 있는 일차원 배열 a와 주사위 3개의 눈이 모두 다를 경우 최댓값을 구하기 위한 max와 최종 출력값을 보관해줄 수 있는 money 변수를 선언해주었습니다.
☞ 왜?
수 3개를 넣어야한다는 것을 보자마자 배열이 떠올랐고 조건식 내에 &&와 ||같은 논리 연산자만 잘 구성해준다면 어려움 없이 풀릴 것이라 생각했습니다.
☞ 다른 사람의 코드
#include <stdio.h>
int main(){
int A, B, C;
scanf("%d %d %d", &A, &B, &C);
if (A == B && B == C) printf("%d", 10000 + A*1000);
else if (A == B) printf("%d", 1000 + A*100);
else if (B == C) printf("%d", 1000 + B*100);
else if (C == A) printf("%d", 1000 + C*100);
else {
if (A > B && A > C) printf("%d", A*100);
else if (B > C) printf("%d", B*100);
else printf("%d", C*100);
}
return 0;
}
배열을 이용하냐 안하냐의 차이에서 조건식 구성이 다를 뿐 내용은 같았습니다.
반응형
'Baekjoon' 카테고리의 다른 글
[C] 백준 1546번 : 평균 (0) | 2022.08.16 |
---|---|
[C] 백준 3052번 : 나머지 (0) | 2022.08.16 |
[C] 백준 2439번 : 별 찍기 - 2 (0) | 2022.08.13 |
[C] 백준 15552번 : 빠른 A+B (0) | 2022.08.12 |
[C] 백준 2562번 : 최댓값 (0) | 2022.08.10 |