본문 바로가기
SQL

[HackerRank] Type of Triangle

by rubyda 2021. 3. 24.
728x90

해커랭크

 

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.

https://www.hackerrank.com/dashboard

 

재미있는 문제다. 해당 문제는 삼각형의 타입을 판별하는 쿼리를 작성하는 문제이다. 각각의 의미는 다음과 같다.

 

  • Equilateral(정삼각형): 세변의 길이가 같은 삼각형
  • Isosceles(이등변 삼각형): 두변의 길이가 같은 삼각형
  • Scalene: 3변의 길이가 다른 삼각형
  • Not A Triangle: 삼각형이 아님

해당 문제는 문제에서 삼각형들의 조건들을 제공했기 때문에 조건문만 알고 있다면 쉽게 풀 수 있는 문제이다.

 

SELECT 
CASE
    WHEN A = B AND B = C THEN "Equilateral"
    WHEN A + B <= C THEN "Not A Triangle"
    WHEN A != B AND B != C AND A != C THEN "Scalene"
    ELSE "Isosceles"
END AS A
FROM TRIANGLES

 

* 삼각형은 가장 큰 변의 길이의 크기가 나머지 두개의 변의 길이를 합한 길이보다 작야아 하는 조건이 있다.

 

따라서 WHEN A + B <= C THEN "Not A Triangle" 이렇게 설정을 해야 삼각형이 아닐 조건이 된다.