isTriangle.js (7kyu 22)

Codewars 알고리즘 풀이


Problem

  • Implement a method that accepts 3 integer values a, b, c.
    • a, b, c 3개의 정수 값을 사용하는 메소드를 작성한다.
  • The method should return true if a triangle can be built with the sides of given length and false in any other case.
    • 주어진 길이의 변으로 삼각형을 만들 수 있으면 true를 반환하고, 그렇지 않으면 false를 반환한다.


Solution 01

function isTriangle(a, b, c) {
   return (a + b > c) && (a + c > b) && (b + c > a);
}

isTriangle(1, 1, 1);  // true
isTriangle(1, 1, 2);  // false
isTriangle(1, 2, 2);  // true


Solution 02

function isTriangle(a, b, c) {
   let arr = [a, b, c].sort();
   return arr[2] < arr[0] + arr[1];
}

isTriangle(1, 1, 1);  // true
isTriangle(1, 1, 2);  // false
isTriangle(1, 2, 2);  // true

sort(): 배열의 element를 정렬한 후, 그 배열을 반환한다.


Solution 03

function isTriangle(a, b, c) {
   let max = Math.max(a, b, c);
   return max < (a + b + c - max);
}

isTriangle(1, 1, 1);  // true
isTriangle(1, 1, 2);  // false
isTriangle(1, 2, 2);  // true

Math.max(): 값이 가장 큰 수를 반환한다.


Solution 04

function isTriangle(a, b, c) {
   let max = Math.max(a, b, c);
   return max < (a + b + c) / 2;
}

isTriangle(1, 1, 1);  // true
isTriangle(1, 1, 2);  // false
isTriangle(1, 2, 2);  // true