[SQL_HackerRank]Q)Type of Triangle

HackerRank는 다양한 문제를 연습 할 수 있는데, sql의 type of trianle문제 오답로그를 남긴다.

[Practice>SQL>Advance Select >Type of Triangle]

[문제: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 Bis not larger than that of side C.

문제풀이 (오답)

내 오답ㅋㅋㅋ

위와 같이 쿼리를 짰는데, 오답이다. 왜지?

삼각형이 되기 위한 조건을 생각했을때 두 짧을 변을 더하면 그 길이는 가장 긴변의 길이보다 길어야 한다. 그렇지 않으면, 열린 도형이 되겠지?

삼각형

하지만, 사실 삼각형을 하나 그려보고 생각해보니, 긴변이던 짧은변이던 상관없이 그 어느변이던, 두변의 길이의 합은 나머지 한변의 길이보다 길다…

이를 반영해서 첫번째 CASE WHEN절을 다음과 같이 수정하였고 결과는 정답ㅎㅎ

수정 쿼리
정답

문제 링크 : https://www.hackerrank.com/challenges/what-type-of-triangle/problem