728x90
반응형
해커 랭크 - https://www.hackerrank.com/
Prepare > SQL > Advanced Select > Type of Triangle
TRIANGLES 테이블에서 세 변의 길이를 사용하여 각 레코드의 유형을 식별하는 쿼리를 작성합니다.
각 레코드에 대해 다음 중 하나의 문장을 출력해야 합니다.
- 정삼각형 (Equilateral) : 변의 길이가 모두 같은 삼각형입니다.
- 이등변삼각형 (Isosceles) : 두 변의 길이가 같은 삼각형입니다.
- 부등변삼각형 (Scalene) : 모든 변의 길이가 다른 삼각형입니다.
- 삼각형이 아닙니다 (Not A Triangle) : 주어진 A, B, C의 값으로는 삼각형을 형성할 수 없습니다.
Input Format
TRIANGLES 테이블은 다음과 같습니다.
테이블의 각 행은 삼각형의 세 변의 길이를 나타냅니다.
Sample Input
Sample Output
Isosceles
Equilateral
Scalene
Not A Triangle
Explanation
- (20, 20, 23) 튜플의 값은 이등변 삼각형입니다. A ≡ B.
- (20, 20, 20) 튜플의 값은 정삼각형입니다. A ≡ B ≡ C.
- (20, 21, 22) 튜플의 값은 부등변삼각형입니다. A ≠ B ≠ C.
- (13, 14, 30) 튜플의 값은 삼각형을 형성할 수 없습니다. A와 B의 합이 C보다 크지 않습니다.
반응형
MySQL
SELECT CASE
WHEN A + B <= C OR B + C <= A OR C + A <= B
THEN 'Not A Triangle'
WHEN A = B AND B = C
THEN 'Equilateral'
WHEN A = B OR B = C OR A = C
THEN 'Isosceles'
WHEN A != B AND B != C AND A != C
THEN 'Scalene'
END
FROM TRIANGLES
Oracle
SELECT CASE
WHEN A + B <= C OR B + C <= A OR C + A <= B
THEN 'Not A Triangle'
WHEN A = B AND B = C
THEN 'Equilateral'
WHEN A = B OR B = C OR A = C
THEN 'Isosceles'
WHEN A != B AND B != C AND A != C
THEN 'Scalene'
END
FROM TRIANGLES
MS SQL Server
SELECT CASE
WHEN A + B <= C OR B + C <= A OR C + A <= B
THEN 'Not A Triangle'
WHEN A = B AND B = C
THEN 'Equilateral'
WHEN A = B OR B = C OR A = C
THEN 'Isosceles'
WHEN A != B AND B != C AND A != C
THEN 'Scalene'
END
FROM TRIANGLES
- 주의
- 삼각형의 조건은 두 변의 길이의 합이 나머지 변의 길이보다 커야 한다.
- 예를 들어, 20, 12, 61은 삼각형의 조건을 충족하지 않지만 'Scalene'로 분류될 수 있다. (Scalene의 조건은 모든 변의 길이가 다른 삼각형)
- 그래서, 두 변의 길이 합이 가장 큰 변보다 크지 않다는 사실을 고려해야한다. (삼각형이 아닌 경우)
- 결과적으로 삼각형이 아닌경우를 먼저 체크 한 뒤, 정삼각형, 이등변삼각형, 부등변삼각형을 체크해야 조건을 정확하게 검사할 수 있다.
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > SQL' 카테고리의 다른 글
[해커랭크(HackerRank) SQL 풀이] - Occupations (0) | 2023.12.12 |
---|---|
[해커랭크(HackerRank) SQL 풀이] - The PADS (2) | 2023.12.07 |
[해커랭크(HackerRank) SQL 풀이] - Employee Salaries (0) | 2023.11.28 |
[해커랭크(HackerRank) SQL 풀이] - Employee Names (1) | 2023.11.23 |
[해커랭크(HackerRank) SQL 풀이] - Higher Than 75 Marks (0) | 2023.11.21 |