우선 삼각형이 되기 위해서는, 가장 긴 변을 제외한 두 변의 길이를 더한 값 > 가장 긴 변의 길이 여야 한다.
처음 작성한 코드는 다음과 같다.
WHEN 을 여러번 사용하여 1개의 CASE문 내에 여러개의 조건을 넣었는데 .. 틀렸다 !
CASE문에 작성한 조건의 순서가 틀렸던것으로 보인다.
SELECT
CASE
WHEN a = b AND b = c THEN 'Equilateral'
WHEN a = b OR a = c OR b = c THEN 'Isosceles'
WHEN a+b > c OR a+c > b OR b+c > a THEN 'Scalene'
ELSE 'Not A Triangle'
END
FROM triangles
triangles 테이블을 출력해보니까 문제를 찾을 수 있었다.
8행을 보면 20 20 40 이라는 row가 있는데, 이 숫자 조합으로는 삼각형이 될 수 없다.
하지만 내가 쓴 조건대로라면 a = b 이므로 이등변삼각형이게 된다.
그래서 삼각형이 안되는 경우부터 걸러줘야했던거다!
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
'SQL > 문제풀이' 카테고리의 다른 글
[HackerRank] Symmetric Pairs 📌 (0) | 2024.02.14 |
---|---|
[leetcode] Reformat Department Table 📌 (0) | 2024.02.14 |
[프로그래머스] 상품을 구매한 회원 비율 구하기 📌 (0) | 2024.02.13 |
[프로그래머스] 보호소에서 중성화한 동물 📌 (0) | 2024.02.12 |
[프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 📌 (0) | 2024.02.12 |