문제 사이트
아래 문제는 해커랭크에서 추출해온 문제입니다. 문제의 저작권은 해커랭크에 있으며 문제를 풀어보시려면 아래 링크를 클릭해주세요 🙂
Type of Triangle | HackerRank
Query a triangle's type based on its side lengths.
www.hackerrank.com
👉문제 설명



👉문제 풀이
CASE WHEN 절을 사용하여 조건문을 만들 수 있는가를 판별하는 문제
전체적인 로직
1) A = B = C 세 변의 길이가 같으면 Equilateral
2) 두 변의 길이만 같다면 Isosceles
3) 세 변의 길이가 모두 다르면 Scalene
4) 두 변의 합 < 한 변의 길이 이면 Not A Triangle
👉문제 풀이 과정
1. CASE WHEN 절 사용하여 삼각형 분류
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 A=C OR B=C THEN 'Isosceles'
ELSE 'Scalene' END
FROM triangles
- 조건에 따라 삼각형 타입을 분류하여야 하므로 CASE문 사용

👉알아야 할 것, 배운 것
CASE WHEN 절을 사용할 때 순서가 중요함
- CASE WHEN : 순서대로 조건문을 돌며 맨 위에 조건을 만족하지 않는다면 밑에 조건으로 이동
SELECT
CASE
WHEN 조건A THEN A
WHEN 조건B THEN B
ELSE C END (AS 원하는 컬럼명)
FROM TABLE
- Not A Triangle을 제외하고는 '두 변의 길이의 합 > 한 변의 길이' 라는 삼각형 조건을 만족하므로 Not A Triangle 먼저 고려해줌
- Equilateral : 삼각형 조건 만족 AND A = B = C
- Isosceles : 삼각형 조건 만족 AND 두 변의 길이 같음
- Scalene : 삼각형 조건 만족 AND 세 변의 길이 다 다름
- Not A Triangle : 삼각형 조건 만족하지 않음
공통된 조건이 많은 것 : 삼각형 조건
Not A Triangle 을 제외하고는 모두 삼각형 조건을 만족해야만 한다
따라서 첫 조건을 삼각형을 만족하지 않으면 Not A Triangle 로 두고
이 조건을 만족하지 않는 (즉 삼각형 조건을 만족시키는) Equilateral, Isosceles, Scalene 은 아래 조건에 둠
👉고찰
순서를 고려하는게 생각보다 어렵다는 생각을 했다.
공통적인 조건이 무엇인지, 어떤 조건이 특이한지를 생각해본 후 코드를 짜는 연습을 해야할 거 같다.
'SQL > MySQL' 카테고리의 다른 글
[MySQL] HackerRank - Weather Observation Station 7 문제 풀이 (0) | 2025.02.06 |
---|---|
[MySQL] HackerRank - Weather Observation Station 6 문제 풀이 (0) | 2025.01.31 |
[MySQL] HackerRank - Binary Tree Nodes 문제 풀이 (0) | 2024.08.31 |
[MySQL] HackerRank - Occupations 문제 풀이 (0) | 2024.08.30 |
[MySQL] HackerRank - The PADS 문제 풀이 (0) | 2024.08.29 |