데이터 분석 공부/SQL
SQL 예제(Triangle Judgement)
세조목
2024. 2. 21. 10:26
610. Triangle Judgement
https://leetcode.com/problems/triangle-judgement/description/
문제의 제목에서도 알 수 있듯 이 문제는 삼각형을 찾는 문제다.
왜인지 모르겠으나 처음 이 문제를 보고서 내가 접근한 방식은
가장 큰 변의 길이가 나머지 두 변 길이의 합보다 작은 조건을 생각했다.
그렇게 작성한 코드는 아래와 같은데
SELECT X, Y, Z, IF(((X+Y+Z) - BIG) > BIG, 'Yes', 'No') TRIANGLE
FROM
(
SELECT X, Y, Z, GREATEST(X, Y, Z) BIG
FROM TRIANGLE
) BIG_TABLE
이렇게 해도 정답 처리가 되기는 한다.
혹시나 싶어 다른 분들이 작성하신 정답을 확인해보니 아래와 같이 굉장히 간단했다.
SELECT *, IF(x+y>z AND y+z>x AND z+x>y, "Yes", "No") as triangle
FROM Triangle
처음에는 왜 AND를 썼는지 이해되지 않았는데
삼각형의 조건을 알고보니 이해가됐다.
삼각형이 되려면 두 변의 길이가 나머지 한 변의 길이보다 커야한다.
'그럼 OR 조건 써도 되는거 아니야?'
라는 의문이 생길수도 있다.
나도 그랬는데 삼각형의 조건을 다시 한 번 보면
두 변의 길이가 나머지 한 변의 길이보다 커야하는 조건이 모든 경우에 적용돼야한다.
예를 들어 X, Y, Z가 있는데
X+Y는 Z보다 큰데 Y+Z가 X보다 작은 경우에는 삼각형이라고 할 수 없다.