티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 10101번 삼각형 외우기

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

 

10101번: 삼각형 외우기

문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다.

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

3개의 정수를 입력받고 아래 규칙에 따라 출력

 

2. 풀이

세 수를 입력받고 if ~ else if ~ else 를 이용해서 그대로 출력하면 됩니다.

매우 단순한 문제이지만 조건문의 순서는 조금 고민을 했습니다.

 

4번째 조건(Error)을 제외한 나머지 규칙에는 모두

'세 각의 합이 180이고,' 이라는 조건이 들어가므로 Error 를 제일 먼저 처리했습니다.

 

이렇게 구현하면 첫 if 조건에서 a + b + c != 180 을 확인하기 때문에

이후 조건에는 a + b + c == 180 이라는 조건을 넣을 필요가 없습니다.

 

같은 논리로 정삼각형(Equilateral)은 a == 60 && b == 60 && c == 60 이 아닌

a == b && b == c 로 확인했습니다.

(이미 합이 180 인 것으로 확인된 상태이므로)

 

3. 코드

#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
/*
10101_삼각형 외우기
1112KB	0ms
*/
#include <cstdio>

int main() {
#ifdef _WIN32
	freopen("input.txt", "r", stdin);
#endif // _WIN32
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);

	if (a + b + c != 180) printf("Error\n");
	else if (a == b && b == c) printf("Equilateral\n");
	else if (a == b || b == c || c == a) printf("Isosceles\n");
	else printf("Scalene\n");

	return 0;
}
728x90
반응형
댓글