일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Pseudo Lab
- 프로그래머스
- Python
- hackerrank
- 알고리즘
- datacamp
- dsf
- airflow architecture
- 2023년 목표
- data_engineer
- 빅데이터를 지탱하는 기술
- Data Engineering
- 데이터 엔지니어
- BOT
- MySQL
- airflow webserver
- Dynamic Programming
- delete join
- 백준 온라인 저지
- docker image
- telegram
- SQL
- Airflow
- docker
- terraform
- Spark
- leetcode
- 백준온라인저지
- 그리디
- docker container
Archives
- Today
- Total
Lim Seunghyun Space
[HackerRank] Type of Triangle 본문
문제 : https://www.hackerrank.com/challenges/what-type-of-triangle/problem?isFullScreen=true
문제 해설
- TRIANGLES 테이블의 A, B, C에 조건을 이용하여 어떤 유형인지 출력하기
- Equilateral : 3변의 길이가 모두 같을시
- Isosceles : 2변의 길이가 같을시
- Scalene : 3변의 길이가 모두 다를시
- Not A Triangle : 삼각형의 형태가 될 수 없을시 (A + B <= C)
나의 풀이 (MySQL)
SELECT
CASE
WHEN A + B <= C THEN "Not A Triangle"
WHEN A != B AND B != C AND A != C THEN "Scalene"
WHEN A = B AND B = C THEN "Equilateral"
WHEN A = B OR A = C OR B = C THEN "Isosceles"
END
FROM TRIANGLES
- CASE WHEN : if 문처럼 조건을 두어 값을 처리
CASE
WHEN 조건 THEN 값 END
--> 조건에 맞으면 값을 리턴 아니면 NULL 리턴
- CASE WHEN은 중첩으로 하여 IF-ELSE 처럼 사용 가능
CASE
WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
...
END
--> 조건1에 맞으면 값1 리턴 아니면 조건2로 넘어감, 조건2가 맞으면 값2 리턴 아니면 다음 조건으로 넘어감. 마지막까지 조건에 걸리지 않는다면 NULL 리턴
- 조건의 순서에서 고려해야하는 점
- 값 중에 A = 20, B = 20, C = 40가 있는데
- WHEN A = B OR A = C OR B = C THEN "Isosceles"
WHEN A + B <= C THEN "Not A Triangle" - 예상하는 결과는 Not A Triangle이지만 위의 순서대로 작성하면 Isosceles가 리턴됨
- > Isosceles에 대한 조건보다 Not A Triangle에 대한 조건이 우선적으로 처리가 되어야 한다.
- WHEN A = B OR A = C OR B = C THEN "Isosceles"
- 값 중에 A = 40, B = 40, C = 40이 있는데
- WHEN A = B OR A = C OR B = C THEN "Isosceles"
WHEN A = B AND B = C THEN "Equilateral" - 예상하는 결과는 Equilateral이지만 위의 순서대로 작성하면 Isosceles가 리턴됨
- > Isosceles의 조건보단 Equilateral에 대한 조건이 우선적으로 처리가 되어야 한다.
- WHEN A = B OR A = C OR B = C THEN "Isosceles"
- 값 중에 A = 20, B = 20, C = 40가 있는데
728x90
'SQL > SQL 문제' 카테고리의 다른 글
[Leetcode] 182. Duplicate Emails (0) | 2022.03.23 |
---|---|
[Leetcode] 181. Employees Earning More Than Their Managers (0) | 2022.03.23 |
[HackerRank] The PADS (0) | 2021.11.29 |
[HackerRank] Employee Salaries (0) | 2021.11.22 |
[HackerRank] Employee Names (0) | 2021.11.22 |