Q

백준 2480

백준 2480번 문제


C code

if문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>

int main(void)
{
int dice1, dice2, dice3, result;

scanf("%d %d %d", &dice1, &dice2, &dice3);

if(dice1 == dice2 && dice2 == dice3)
result = 10000 + dice1 * 1000;
else if(dice1 == dice2 || dice1 == dice3)
result = 1000 + dice1 * 100;
else if(dice2 == dice3 && dice1 != dice3)
result = 1000 + dice3 * 100;
else
{
if(dice1 > dice2 && dice1 > dice3)
result = dice1 * 100;
else if(dice2 > dice1 && dice2 > dice3)
result = dice2 * 100;
else if(dice3 > dice1 && dice3 > dice1)
result = dice3 * 100;
}

printf("%d\n", result);

return 0;
}

삼항연산자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>

int main(void)
{
int dice1, dice2, dice3, result;

scanf("%d %d %d", &dice1, &dice2, &dice3);

// 주사위 3개 모두 같은 값일 때
if(dice1 == dice2 && dice2 == dice3)
result = 10000 + dice1 * 1000;
// 첫 번째와 나머지 주사위 중 값이 같을 때와 나머지 주사위끼리 같을 때
else if(result = (dice1 == dice2 || dice1 == dice3) ? (1000 + dice1 * 100) : ((dice2 == dice3) ? (1000 + dice3 * 100) : 0)){}
// 3개의 주사위 모두 값이 다를 때
else
result = (dice1 > dice2 && dice1 > dice3) ? (dice1 * 100) : ((dice2 > dice1 && dice2 > dice3) ? (dice2 * 100) : (dice3 * 100));

printf("%d\n", result);

return 0;
}