[HackerRank] Type of Triangle

생각하는 마리오네트·2021년 11월 10일
0

SQL

목록 보기
24/39

Q. 문제

Write a query identifying the type of each record in the TRIANGLES table using its three side lengths. Output one of the following statements for each record in the table:

  • Equilateral: It's a triangle with sides of equal length.
  • Isosceles: It's a triangle with sides of equal length.
  • Scalene: It's a triangle with sides of differing lengths.
  • Not A Triangle: The given values of A, B, and C don't form a triangle..

Input Format

The TRIANGLES table is described as follows:

ColumnType
AInteger
BInteger
CInteger

Each row in the table denotes the lengths of each of a triangle's three sides.

Sample Input

ABC
202023
202020
202122
131430

Sample Output

Isosceles
Equilateral
Scalene
Not A Triangle

시행착오

  • 이번문제는 알고보면 정말 쉬운문제인데 파이썬에서는 and나 or에대해서 너무 자연스럽고 익숙해서 뭘써야겠다 생각도 안하고 바로바로 사용을 하곤한다. 물론 생각을 할때도 많다.
    하지만, SQL도 그럴줄 알았는데 바로 되지않았고 or을 해야하는 부분에 and를 사용하여 계속해서 실패하였다.

  • 두변의 길이가 같은 삼각형이 정삼각형이 될수도 있음을 인지하지 못하고 있어서 A=B!=C이런식의 코드를 작성했지만 계속해서 실패했고, 생각해보니 이등변삼각형은 정삼각형의 부분집합의 개념이라는 것을 생각하게 되었고 코드를 수정하여 정답을 내었다.

완성코드

SELECT 
CASE
WHEN A=B AND B=C THEN 'Equilateral'
WHEN A>=B+C OR B>=C+A OR C>=A+B THEN 'Not A Triangle'
WHEN A=B OR B=C OR C=A THEN 'Isosceles' 
WHEN A!=B AND B!=C AND C!=A THEN 'Scalene'
END
FROM TRIANGLES 
profile
문제를해결하는도구로서의"데이터"

0개의 댓글