
이번 문제는 세 각의 크기를 입력받아 삼각형의 종류를 판별하는 문제이다. 세 각의 합이 180도인지 먼저 확인한 뒤, 각의 크기에 따라 Equilateral, Isosceles, Scalene 또는 Error를 출력하면 된다.
조건문에서 여러 값을 동시에 비교해야 하기 때문에, 다중 조건을 활용하면 쉽게 해결할 수 있는 문제이다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
internal class geometry1
{
static void Main(string[] args)
{
//백준 10101 삼각형 외우기
int angleA = int.Parse(Console.ReadLine());
int angleB = int.Parse(Console.ReadLine());
int angleC = int.Parse(Console.ReadLine());
if (angleA == 60 && angleB == 60 && angleC == 60)
{
Console.WriteLine("Equilateral");
}
else if (angleA + angleB + angleC == 180
&& ((angleA == angleB) || (angleB == angleC) || (angleC == angleA)))
{
Console.WriteLine("Isosceles");
}
else if (angleA + angleB + angleC == 180
&& (angleA != angleB) && (angleA != angleC) && (angleB != angleC))
{
Console.WriteLine("Scalene");
}
else if (angleA + angleB + angleC != 180)
{
Console.WriteLine("Error");
}
}
}
}

글을 작성하며 코드를 다시 살펴보니, 동일한 연산이 여러 번 사용되고 있는 부분이 있었다. 이러한 경우 해당 값을 변수로 따로 저장해 사용하면 코드의 가독성을 높일 수 있을 것 같다는 생각이 들었다.
세 각의 합을 여러 번 계산하기보다는 sum 변수에 저장하여 사용하는 방식
// 백준 10101 삼각형 외우기
int angleA = int.Parse(Console.ReadLine());
int angleB = int.Parse(Console.ReadLine());
int angleC = int.Parse(Console.ReadLine());
int sum = angleA + angleB + angleC; // 세 각의 합
if (sum != 180)
{
Console.WriteLine("Error");
}
else if (angleA == 60 && angleB == 60 && angleC == 60)
{
Console.WriteLine("Equilateral");
}
else if (angleA == angleB || angleB == angleC || angleC == angleA)
{
Console.WriteLine("Isosceles");
}
else
{
Console.WriteLine("Scalene");
}
'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 14215 세 막대 (0) | 2026.04.01 |
|---|---|
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 5073 삼각형과 세 변 (0) | 2026.03.31 |
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 9063 대지 (0) | 2026.03.31 |
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 15894 수학은 체육과목 입니다. (0) | 2026.03.30 |
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 3009 네 번째 점 (0) | 2026.03.30 |