[알고리즘] 기초 문제 풀이 - 삼각형 판별하기

인프런 자바스크립트 알고리즘 문제풀이

삼각형 판별하기

길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있
으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다.


▣ 입력설명
첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
▣ 출력설명
첫 번째 줄에 “YES", "NO"를 출력한다.
▣ 입력예제 1
6 7 11
▣ 출력예제 1
YES


일단 삼각형의 결정조건에 대해 알아야한다. 보통 문제에 다 써있긴하다... 여튼 문제를 풀기위해 까먹은 삼각형의 결정조건을 검색하였고 세 변의 길이를 알 때, 가장 긴 변의 길이가 다른 두 변의 길이의 합보다 크거나 같으면 삼각형을 그릴 수 없다고 한다. 따라서 가장 긴 변 max가 다른 두 변의 길이의 합보다 작아야 YES로 답이 출력된다.

내 풀이

function solution(a, b, c) {
  let answer = "YES";
  const total = a + b + c;
  let max = a;
  if (a < b) max = b;
  else max = a;
  if (c > max) max = c;
  total - max > max ? (answer = "YES") : (answer = "NO");
  return answer;
}

최댓값 max를 우선 구한 뒤에 세 변의 합에서 max를 빼보고 그 값이 max보다 크면 삼각형이 성립, 그렇지 않으면 성립되지 않게 삼항연산자로 작성하였다.

강사님의 풀이

function solution(a, b, c) {
  let answer="YES", max;
  let sum = a + b + c;
  if(a > b) max = a;
  else max = b;
  if(c > max) max = c;
  if((sum - max) <= max) answer = "NO";
  return answer;
}
  

좋은 웹페이지 즐겨찾기