> 개발-IT-인터넷/> SQL

[해커랭크(HackerRank) SQL 풀이] - Type of Triangle

jini:) 2023. 11. 30. 09:45
728x90
반응형
해커 랭크 - https://www.hackerrank.com/
Prepare > SQL > Advanced Select > Type of Triangle

 

 

HackerRank - Online Coding Tests and Technical Interviews

HackerRank is the market-leading coding test and interview solution for hiring developers. Start hiring at the pace of innovation!

www.hackerrank.com

 

 

TRIANGLES 테이블에서 세 변의 길이를 사용하여 각 레코드의 유형을 식별하는 쿼리를 작성합니다.

각 레코드에 대해 다음 중 하나의 문장을 출력해야 합니다.

  • 정삼각형 (Equilateral) : 변의 길이가 모두 같은 삼각형입니다.
  • 이등변삼각형 (Isosceles) : 두 변의 길이가 같은 삼각형입니다.
  • 부등변삼각형 (Scalene) : 모든 변의 길이가 다른 삼각형입니다.
  • 삼각형이 아닙니다 (Not A Triangle) : 주어진 A, B, C의 값으로는 삼각형을 형성할 수 없습니다.

 

Input Format

TRIANGLES 테이블은 다음과 같습니다.

[출처] https://www.hackerrank.com/challenges/what-type-of-triangle/problem

테이블의 각 행은 삼각형의 세 변의 길이를 나타냅니다.

 

Sample Input

[출처] https://www.hackerrank.com/challenges/what-type-of-triangle/problem

 

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
반응형