본문 바로가기

알고리즘

JS | 삼각형 판별하기

❓ 길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면

이 세 막대로 삼각형을 만들 수 있으면

"YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다.

 

 

우선, 삼각형이 될 수 있는 조건을 알아보자.

가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 작아야 한다.

 

 

        function solution(a, b, c) {
            let answer = "YES", max;
            
            return answer;
        }
        
        console.log(solution(13, 33, 17));

우선 이렇게 answer이면 "YES"를 출력하는 변수와

가장 긴 막대를 표시할 수 있는 max를 지정해준다.

 

 

        function solution(a, b, c) {
            let answer = "YES", max;
            if (a > b) max = a;
            else max = b;
            if (c > max) max = c;
            return answer;
        }
        
        console.log(solution(13, 33, 17));

그리고 가장 큰 수를 찾기위해서

if문을 사용해준다.

 

먼저, a와b를 비교했을 때

a가 크다면 max는 a이고,

그렇지 않다면 max는 b가 된다.

또 만약, max보다 c가 크다면

max는 c가되는 식을 작성해준다.

그러면 가장 큰 값이 max에 저장되게 된다.

 

 

        function solution(a, b, c) {
            let answer = "YES", max;
            let tot = a + b + c;
            if (a > b) max = a;
            else max = b;
            if (c > max) max = c;
            if (tot - max <= max) answer = "NO";
            return answer;
        }
        
        console.log(solution(13, 33, 17));

이제 나머지 두 값의 합이 max보다 작은지 큰지를 알아봐야한다.

그러기 위해서는 우선 모든 세 값을 더한 tot을 지정해주고,

tot에서max를 뺀 값이 max보다 작거나 같다면 answer을 "NO"로 해준다.

아니라면 그냥 return으로 answer출력!

 

 

'알고리즘' 카테고리의 다른 글

JS | 10부제 위반 차량 출력하기  (0) 2021.08.23
JS | 홀수값 구해서 더하기 / 홀수 중 최솟값  (0) 2021.08.19
JS | 최솟값 구하기  (0) 2021.08.18
JS | 1부터 N까지 합 출력하기  (0) 2021.08.17
JS | 연필개수  (0) 2021.08.12