[SQL#108]610. Triangle Judgement

Gi Woon Lee·2024년 8월 16일
0

SQL

목록 보기
6/33

610. Triangle Judgement

문제 개요

Triange테이블 칼럼 x,y,z 는 삼각형 각 변의 길이 정보를 담고 있다.
삼각형 구성 가능 여부 정보를 담는 칼럼 triangle를 추가하라는 문제.

방법1(배운 점)

삼각형 구성 조건:
가장 긴 변의 길이가 나머지 두 변의 합 보다 작아야 한다.

위 조건을 충족하기 위해 나는 case when을 사용했다.

    case when x + y > z then 'Yes'
         when x + z > y then 'Yes'
         when y + z > x then 'Yes'
         else 'No'
         end as 'triange'

하지만 실패했다. 왜 일까? 이유는 다음과 같다.

오답 이유:"가장 긴 변 조건"을 충족하지 못해서

  • (Emaple 1 를 통해 알아보자.)
    첫 번째 행의 경우 when x + y > z then 'Yes' 조건을 충족하지 못해 No가 나오지만 그 다음 조건 when x + z > y then 'Yes' 조건을 충족하여 NoYes로 바뀌게 된다.
    따라서 output 첫 째 행이 No가 아니라 Yes로 잘못 출력된다.

방법2 (💡성공!)

"가장 긴 변의 길이가 나머지 두 변의 합 보다 작아야 한다" 는 조건을 충족하려면 case 절에서 사용한 3개의 when 조건을 모두 충족해야 한다.

따라서 정답 쿼리는 다음과 같다.

select 
    x,
    y,
    z,
    case when x + y > z and x + z > y and y + z > x then 'Yes'
         else 'No'
         end as 'triangle' 
from triangle

정리

생각보다 까다로운 삼각형 ㅋ
and를 통해 강력한 조건을 만들 수 있다는 것을 항상 기억하자.

0개의 댓글