자바스크립트 알고리즘 문제(2)

길이가 서로 다른 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 max; //가장 긴 막대 max
  let sum = a + b + c; // 막대의 총합 
  let result = "YES";
  if ( a > b) max = a; // a와 b중 큰 수를 max에 담아주고 
  else max = b; // 아니라면 b
  if ( c > max) max = c; //이전 문제와 같은 방식으로 최대값을 구해주었다. 하지만! 가장 큰값은 구했지만 어떤 막대가 들어있는지 모른다..
  // 그래서 sum에서 총 막대의 길이를 합해주고
  if((sum - max) <= max) result = "NO";
//총 막대의 길이에서 가장 긴 막대를 빼준다! 그럼 나머지 막대의 길이인데 그 막대의 합이 가장 긴 막대보다 작거나 같으면 삼각형이 불가능하기때문에 NO! 
  return result;
}

console.log(solution(6, 7, 11)); //Yes
console.log(soluttion(13, 33, 17); //No

좋은 웹페이지 즐겨찾기