백준 2480번 : 주사위 세개 문제 풀이
https://www.acmicpc.net/problem/2480
1. 문제
2. 풀이
1. 같은 눈이 3개가 나올 때
2. 같은 눈이 2개가 나올 때
3. 모두 다른 눈이 나올 때
를 조건으로 설정하고 문제를 풀어야 한다
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
scanf 를 이용하여 주사위의 눈 3개(a, b, c)를 입력 받는다
1. 같은 눈이 3개가 나올 때
if ((a == b) && (b == c))
printf("%d", 10000 + (a * 1000));
조건문을 이용하여 a와 b가 같고 b와 c가 같을 때
10000 + a × 1000 원의 상금을 출력하도록 했다
2. 같은 눈이 2개가 나올 때
else if ((a == b) || (a == c))
printf("%d", 1000 + (100 * a));
else if (b == c)
printf("%d", 1000 + (100 * b));
else if 문을 사용하여 if 문과 구별을 해주었다
3개 중 2개의 수만 같으면 되기 때문에
a와 b가 같을 때 또는 a와 c가 같을 때
1000 + a × 100 원의 상금을 출력하도록 했다
b와 c가 같을 때
1000 + b × 100 원의 상금을 출력하도록 했다
3. 모두 다른 눈이 나올 때
else if ((a > b) && (a > c))
printf("%d", a * 100);
else if (b > c)
printf("%d", b * 100);
else
printf("%d", c * 100);
똑같이 else if 문을 사용하여 if 문과 구별을 해주었다
가장 큰 눈을 곱하기 때문에 제일 큰 수를 구해주어야 한다
a가 b보다 클 때 그리고 a가 c보다 클 때
a × 100 원의 상금을 출력하도록 했다
b가 c 보다 클 때
b × 100 원의 상금을 출력하도록 했다
위의 조건을 모두 만족하지 않으면
c × 100 원의 상금을 출력하도록 했다
최종적으로 제출한 코드이다
#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) || (a == c))
printf("%d", 1000 + (100 * a));
else if (b == c)
printf("%d", 1000 + (100 * b));
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;
}
3. 다른 사람이 제출한 코드
https://rightbellboy.tistory.com/107
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
int prize;
if (a == b && b == c) {
prize = 10000 + a * 1000;
}
else if (a == b) {
prize = 1000 + a * 100;
}
else if (b == c) {
prize = 1000 + b * 100;
}
else if (c == a) {
prize = 1000 + c * 100;
}
else {
int max = a;
if (b > max) max = b;
if (c > max) max = c;
prize = max * 100;
}
printf("%d\n", prize);
return 0;
}
다른 눈이 2개가 나올 때는
a == b, b ==c, c == a
3가지 조건을 이용해서 직관적으로 문제를 풀었다
마지막 모두 다른 눈이 나올 때는
max 변수를 만들고 a 와 같다고 정했다
그 다음 b, c 를 차례대로 비교하면서
더 큰 값을 max에 저장해서 값을 출력하였다
코드가 무조건 짧은 것도 좋은 건 아닌것 같다
좀 더 직관적으로 코드를 짜도록 노력해야겠다
'Coding > baekjoon' 카테고리의 다른 글
[백준 / baekjoon] 10950번 : A + B - 3 [C] (0) | 2023.11.23 |
---|---|
[백준 / baekjoon] 2739번 : 구구단 [C] (0) | 2023.11.23 |
[백준 / baekjoon] 2525번 : 오븐 시계 [C] (0) | 2023.11.21 |
[백준 / baekjoon] 2884번 : 알람 시계 [C] (0) | 2023.11.20 |
[beakjoon] 14681번 : 사분면 고르기 [C] (0) | 2023.11.19 |