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 3 sides of equal length.
- Isosceles: It's a triangle with 2 sides of equal length.
- Scalene: It's a triangle with 3 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:
![](https://blog.kakaocdn.net/dn/2lCtC/btsI0IIMma2/DYRjRVS4gXND0DYGKPLdxk/img.png)
Each row in the table denotes the lengths of each of a triangle's three sides.
Sample Input
![](https://blog.kakaocdn.net/dn/od8Pd/btsIZZksPZc/6Mvt4iswS69Qi4kKQnd5f1/img.png)
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 <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle'
WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
ELSE 'Scalene'
END AS TriangleType
FROM TRIANGLES;
▼ 잘못 작성한 나의 코드
Explanation에서 설명된 마지막 사항을 고려하지 못했다, 삼각형의 기본 조건.
SELECT
CASE
WHEN (A=B) AND (A=C) THEN 'Equilateral'
WHEN (A=B) OR (A=C) OR (B=C) THEN 'Isosceles'
WHEN (A<>B) AND (A<>C) AND (B<>C) THEN 'Scalene'
ELSE 'Not A Triangle'
END AS result
FROM
TRIANGLES
'SQL > HackerRank' 카테고리의 다른 글
[MySQL/HackerRank] Occupations (0) | 2024.08.11 |
---|---|
[MySQL/HackerRank] The PADS (0) | 2024.08.11 |
[MySQL/HackerRank] Employee Salaries (0) | 2024.08.11 |
[MySQL/HackerRank] Employee Names (0) | 2024.08.11 |
[MySQL/HackerRank] Higher Than 75 Marks (0) | 2024.08.11 |