본문 바로가기

Algorithm/MySQL

[해커랭크(Hacker Rank)] Type of Triangle (MySQL)

문제

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 3sides of equal length.
  • Isosceles: It's a triangle with 2sides of equal length.
  • Scalene: It's a triangle with 3sides of differing lengths.
  • Not A Triangle: The given values of A, B, and C don't form a triangle.

 

코드

SELECT CASE 
            WHEN A=B AND B=C THEN 'Equilateral'
            WHEN A+B <= C OR A+C <= B OR B+C <= A THEN 'Not A Triangle'
            WHEN A=B OR A=C OR B=C THEN 'Isosceles'
            ELSE 'Scalene' END
FROM triangles

 

풀이

삼각형이 들어있는 Triangles라는 테이블에 어떤 타입의 삼각형인지 알려달라
각각의 레코드마다 정삼각형일 수도 있고 이등변 삼각형일 수도 있고 일반적인 삼각형일 수 도있고 삼각형이 아닐 수도 있다

  1. 세 변이 같을 때 > 정삼각형
  2. 두 변이 같을 때 > 이등변삼각형
  3. 세 변의 길이가 다를 때 > 보통의 삼각형
  4. 두 변의 합이 남은 한 변보다 작을 때 > 삼각형 X

CASE WHEN 의 조건은 순서대로 진행되므로 어떤 조건이 먼저 와야하는지 생각해야함

 

출처

반응형