article thumbnail image
Published 2022. 5. 24. 13:34

삼각형 판별하기

길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다.
▣ 입력설명
첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
▣ 출력설명
첫 번째 줄에 “YES", "NO"를 출력한다.
▣ 입력예제 1
6 7 11
▣ 출력예제 1
YES
▣ 입력예제 1
13 33 17
▣ 출력예제 1
no
 
 
📌작성된 코드
 function solution(a, b, c) {
    let maxNum = Math.max(a, b, c); //가장긴거
    let sum = a + b + c - maxNum; //총 합

    if (maxNum < sum) {
      return "YES";
    } else {
      return "NO";
    }
  }
  console.log(solution(6, 7, 11));
 
가장 중요했던건 '삼각형의 조건'이다.
삼각형은 가장 긴 변의 길이가 다른 두 변의 길이의 합보다 작아야 삼각형이 정립된다.

 

예를들어 

a=5 b=5 c=6 이라는 가정하에

세 수를 모두 더하면 16이고, 그 총합계에서 가장 큰 수(6)을 빼면 10이라는 숫자가 나오기때문에

결과값과 6(세 수 중 가장 큰 수)을 비교해서 세 가지 막대로 삼각형을 만들 수 있으면

'yes' 없으면 'no'로 나타내주면 되는 것.

 

a, b, c의 숫자중 어떤게 가장 큰 수인지 모르기때문에

a + b + c를 모두 더 한 합계를 sum변수로 지정.

조건문을 통해서 가장 큰 수인 max를 구했고,

sum - max = 결과값 저장,

나온 결과값과 max 비교

  let sum = a + b + c, max, answer, result

변수를 지정할때 쉼표를 찍어주면 일일히 변수를 다 지정하지 않아도

한줄 선언이 가능하다는 점.

 

📍배열로 변환 후, 조건문 사용

  function solution(a, b, c) {
    let newArr = Array.from(arguments);
    let target = newArr[0];

    for (let i = 1; i < newArr.length; i++) {
      if (target < newArr[i]) {
        target = newArr[i];
      }
    }

    let sum = a + b + c - target;

    if (sum > target) {
      return "YES";
    } else {
      return "NO";
    }
  }
  console.log(solution(6, 7, 14));
복사했습니다!