백준 알고리즘/Lang-C | C++

[백준/C] 10101번 삼각형 외우기

Jongung 2021. 8. 22. 14:14

 

백준 온라인 저지 / 10101번 삼각형 외우기

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

 

10101번: 삼각형 외우기

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

www.acmicpc.net

 

 

 

  • 사용언어 : C (C99)
  • 알고리즘 : 구현, 기하학

 

 

 

C 코드

1. 문제 정리

 

총 3가지 입력을 받아 계산하는 문제이다.

기하학 사용 문제라는데 그냥 삼각형 세 각의 합이 180인것만 예외 처리 해놓고 시작하면 되는 문제이지 않나 싶다.

if else문 2중으로 처리할려했는데 그냥 1개로 처리 해보았다.

 

 

2. 삼각형 예외 처리

 

 

int add = A + B + C;
if (A == 60 && A == B && B == C) {
		printf("Equilateral");
	}
	else if (add == 180 && (A == B || B == C || C == A)) {
		printf("Isosceles");
	}
	else if (add == 180) {
		printf("Scalene");
	}
	else {
		printf("Error");
	}

 

A가 60이고 A B C 모두가 같을 때 Equilateral을 출력

3개 각을 더했을때 180이고 두개의 각이 같을 때 Isosceles를 출력

3개 각을 더했을 때 그냥 180이면 scalene을 출력

앞에 모든 것들을 만족하지 않을때 Error을 출력하는 문구이다.

 

 

3. 완성 코드

#include <stdio.h>

int main() {
	int A, B, C;
	scanf_s("%d %d %d", &A, &B, &C);

	int add = A + B + C;

	if (A == 60 && A == B && B == C) {
		printf("Equilateral");
	}
	else if (add == 180 && (A == B || B == C || C == A)) {
		printf("Isosceles");
	}
	else if (add == 180) {
		printf("Scalene");
	}
	else {
		printf("Error");
	}

	return 0;
}