알고리즘 공부/백준 문제풀이

10101_백준 [삼각형 외우기]

yongyongMom 2022. 9. 20. 18:58
SMALL

2022.09.16

브론즈 4

c++ 사용

문제

삼각형의 세 각을 입력받은 다음,

  • 세 각의 크기가 모두 60이면, Equilateral
  • 세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles
  • 세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene
  • 세 각의 합이 180이 아닌 경우에는 Error

를 출력하는 프로그램을 작성하시오.

입력

-- 총 3개의 줄에 걸쳐 삼각형의 각의 크기가 주어진다. 모든 정수는 0보다 크고, 180보다 작다.

 

#include<iostream>
using namespace std;

int main() {
	int  a, b, c; // 삼각형의 세 각을 받음
	string result;

	cin >> a >> b >> c;

	if (a + b + c == 180) {
		if (a == b) { // 최소 두 각이 같은 경우
			if (a == c) result = "Equilateral"; // 세 각이 같은 경우
			else result = "Isosceles"; // 두 각이 같은 경우
		}
		else if (a == c || b == c) { 
			result = "Isosceles";
		}
		else result = "Scalene"; // 세 각이 모두 다른 경우
	}
	else result = "Error"; // 삼각형이 아닌 경우

	cout << result;
}

 

  1. 삼각형의 세 각을 입력 받은 후 삼각형의 기본 조건인 세 각의 합이 180인지 확인한다. 
  2. 삼각형의 기본 조건을 만족할 시
    1) 두 각이 같은 경우 -> 남은 각도 같으면 정삼각형
    2) 다른 경우 -> 일반 삼각형
    로 나누어 삼각형 종류를 구분한다.
  3. 삼각형의 기본 조건을 만족하지 않을 시 ERROR를 출력한다.
  4. result를 출력하면 끄읕 --!--

 

삼각형을 구분하는 문제이고

정삼각형은 'Equilateral'

이등변 삼각형은 'Isosceles'

일반 삼각형은 'scalene' 이라고 합니다!

(역시 코딩을 하다보면 영어 실력이..크흠..)

 

반응형
LIST