1. 문제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
unsigned dice1, dice2, dice3;
scanf("%u %u %u", &dice1, &dice2, &dice3);
// 1. 같은 눈이 3개 나올 경우
if ((dice1 == dice2) && (dice2 == dice3))
{
printf("%u", 10000 + dice1 * 1000);
}
// 2. 모두 다른 눈이 나오는 경우
else if ((dice1 != dice2) && (dice1 != dice3) && (dice2 != dice3))
{
// 오름 차순으로 가장 큰수 선택
unsigned dice_arr[3] = { dice1, dice2, dice3 };
int i = 0;
while (i < 2)
{
if (dice_arr[i] > dice_arr[i + 1])
{
int temp = dice_arr[i];
dice_arr[i] = dice_arr[i + 1];
dice_arr[i + 1] = temp;
}
i++;
}
printf("%u", 100* dice_arr[2]);
}
// 3. 같은 눈이 2개만 나오는 경우
else
{
if (dice1 == dice2)
printf("%u", 1000 + 100 * dice1);
else if (dice2 == dice3)
printf("%u", 1000 + 100 * dice2);
else
printf("%u", 1000 + 100 * dice1);
}
return 0;
}
2. 해결 방법
1. 모두 다른 눈에서 가장 큰 수 선택 -> 자료구조 : 오름차순
2. 같은 눈이 2개만 동일 할 때, 같은 수 선택 -> dice1, dice2, dice3 모두 비교
✅ 너무 복잡하게 풀어서 맘에 들지 않음.
'BACKJOON, 백준' 카테고리의 다른 글
백준 2566번 최대값 초기 설정 (0) | 2023.12.04 |
---|---|
백준 10951번 중복 숫자 (0) | 2023.11.18 |
백준 10951번 EOF (0) | 2023.11.15 |
백준 2525번 오븐 시계 (0) | 2023.11.14 |
백준 11382번 꼬마 정민 (0) | 2023.11.14 |