본문 바로가기

algorithm

[HackerRank] MySQL - Type of Triangle

문제

 

Write a query identifying the type of each record in the TRIANGLES table using its three side lengths. Output one of the following statements for each record in the table:

  • Equilateral: It's a triangle with  sides of equal length.
  • Isosceles: It's a triangle with  sides of equal length.
  • Scalene: It's a triangle with  sides of differing lengths.
  • Not A Triangle: The given values of A, B, and C don't form a triangle.

Input Format

The TRIANGLES table is described as follows:

Each row in the table denotes the lengths of each of a triangle's three sides.

Sample Input

Sample Output

Isosceles
Equilateral
Scalene
Not A Triangle

Explanation

Values in the tuple (20, 20, 23) form an Isosceles triangle, because A = B.
Values in the tuple (20, 20, 20) form an Equilateral triangle, because A = B = C. Values in the tuple (20, 21, 22) form a Scalene triangle, because A ≠ B ≠ C.
Values in the tuple (13, 14, 30) cannot form a triangle because the combined value of sides A and B is not larger than that of side C.

 

 

 

 

풀이

 

select
    case
        when a = b and b = c then 'Equilateral'
        when a + b <= c then 'Not A Triangle'
        when a != b and a != c and b != c then 'Scalene'
        else 'Isosceles'
    end as a
from triangles;

 

 

 

NOTE

 

 

문제에서 설명한 삼각형의 조건을 활용해서 문제를 풀 수 있다.

case문에 삼각형의 조건을 대입하여 풀이하면 된다.