[HackerRank] Type of Triangle

mzzzi·2022년 4월 20일
0

HackerRank SQL

목록 보기
21/52
post-thumbnail

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,23) 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 .

My Answer


SELECT CASE WHEN A + B <= C OR B + C <= A OR A + C <= B THEN 'Not A Triangle'  -- 1
            WHEN A = B AND B = C AND C = A THEN 'Equilateral' -- 2
            WHEN A = B or B = C OR C = A THEN 'Isosceles'  -- 3
            ELSE 'Scalene' -- 4
            END
FROM TRIANGLES;

-- CASE문의 조건은 위에서 아래로 적용
-- 1번 > 두 변의 길이의 합이 다른 한 변의 길이보다 작거나 같으면 삼각형이 될 수 없음
-- 1번의 A+B = C는 삼각형이 될 수 없으나 2번의 조건이 선제될 경우 이등변 삼각형으로 출력되므로 1 -> 2번으로 출력
-- 정삼각형이 이등변삼각형이 될 수 있으므로 2번의 정삼각형에 대한 조건을 먼저 실행 후 3번 이등변삼각형에 대한 조건 실행
profile
무럭무럭 성장하라🌳

0개의 댓글