Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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 29 30
Archives
Today
Total
관리 메뉴

hwooo

(C) 2480번: 주사위 세개 본문

Study/Algorithm

(C) 2480번: 주사위 세개

hwooo 2022. 6. 4. 05:21

https://www.acmicpc.net/problem/2480

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 


풀이

숫자가 모두 다른 경우엔 max값을 지정했다. if문보단 삼항연산자가 깔끔해서 처음 max값 지정 시 삼항연산자 사용.

코드

#include <stdio.h>
int main() {
	int n1, n2, n3, max;
	scanf("%d%d%d", &n1, &n2, &n3);

	if (n1 == n2 && n2 == n3) printf("%d", 10000 + 1000 * n1); 	// 숫자 3개 같은 경우
	if (n1 != n2 && n2 != n3 && n1 != n3) { 			// 숫자 다 다를 경우
		max = n1 < n2 ? n2 : n1;
		if (max < n3) max = n3;
		printf("%d", max * 100);
	}

	if ((n1 == n2 && n2 != n3) || (n1 == n3 && n2 != n3)) printf("%d", 1000 + n1 * 100);
	else if (n2 == n3 && n1 != n2) printf("%d", 1000 + n2 * 100); // 숫자 2개만 같을 경우
}

풀이2

숫자가 2개만 같은 경우엔 어떤 숫자가 같은 지에 따라 출력문을 작성했는데,

코드가 깔끔하지 않고 if-else if문을 잘 활용하지 못 한 것 같아서 찾아봤다.

 

조건문 안에 다중 조건이 있을 때 if-else if문을 활용하는 게 약한 것 같다.

if (n1 == n2 && n2 == n3), else if (n1==n2)일 때 else if문은 if문의 조건과 같아지면 안 되므로 n2!=n3의 조건이 만족한다.

else의 경우에는  (n1!=n2 || n2!=n3)가 만족한다.

 

이번 문제에서 의도했던 바는 if - else if 문의 활용을 보고자 했던 것 같다.

실제로 찾아봤을 때도 이런 식의 코드가 더 많았다.


코드

#include <stdio.h>
int main() {
	int n1, n2, n3, max;
	scanf("%d%d%d", &n1, &n2, &n3);

	if (n1 == n2 && n2 == n3) printf("%d", 10000 + 1000 * n1); 	// 숫자 3개 같은 경우
	else if (n1 == n2 || n1 == n3)	printf("%d", 1000 + n1 * 100);
	else if (n2 == n3)  printf("%d", 1000 + n2 * 100);		// 숫자 2개만 같을 경우
	else{ 					
		max = n1 < n2 ? n2 : n1;
		if (max < n3) max = n3;
		printf("%d", max * 100);
	}								// 숫자 다 다를 경우

}

'Study > Algorithm' 카테고리의 다른 글

(C) 10950번: A+B - 3  (0) 2022.06.05
(C) 2739번: 구구단  (0) 2022.06.05
(C) 2525번: 오븐 시계  (0) 2022.06.04
(C) 2884번: 알람 시계  (0) 2022.06.04
(C) 14681번: 사분면 고르기  (0) 2022.06.04