1-2) 삼각형 판별하기

김예지·2021년 8월 25일
0

문제

길이가 서로 다른 A, B, C 세개의 막대 길이가 주어지면, 이 세막대로 삼각형을 만들 수 있으면 "YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다.
[입력설명]
첫번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
[출력설명]
첫번째 줄에 "YES", "NO"를 출력한다.

입력예제 1

6 7 11

출력예제 1

YES

입력예제 2

13 33 17

출력예제 2

NO


문제 풀이

  • 삼각형이 될 수 있는 조건

    위 삼각형에서 c의 길이가 가장 길다고 가정할 때,
    c < a + b 를 만족해야한다.
    이 조건을 만족하지 않으면 삼각형이 될 수 없다.
  • 코드
    (1) 가장 긴 길이를 max에 저장하고(앞 문제와 같이, Math.max(a, b, c) 메소드를 통해서 max값을 가져올 수 있다.
    (2) max >= (sum-max) 코드를 통해 조건을 만족하는지 확인한다.
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(a, b, c){
                let answer="YES", max;
                let sum=a+b+c;
                if(a>b) max=a; //a가 max
                else max=b; //b
                if(c>max) max=c; //c (세 과정을 통해 a,b,c 중 가장 큰값이 max에 저장됨)
                if((sum-max)<=max) answer="NO" //max가 아닌 나머지 값의 합이 max보다 작거나 같으면, 삼각형이 될 수 없다(삼각형 조건 만족하면 answer의 초기값인 "YES" 출력) 

                return answer;
            }

            console.log(solution(13, 33, 17));
        </script>
    </body>
</html>

결과

NO

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

2개의 댓글

comment-user-thumbnail
2021년 9월 11일

9/10

답글 달기
comment-user-thumbnail
2022년 11월 23일

11/23

// 삼각형 조건: c < a + b

function solution(a, b, c) {
  const sorted_arr = [a, b, c].sort((a, b) => b - a);
  return (sorted_arr[0] < sorted_arr[1] + sorted_arr[2])? "YES" : "NO";
}

solution(3, 3, 7);
답글 달기