IF - 삼각형 판별하기

Goody·2021년 3월 29일
0

알고리즘

목록 보기
78/122

문제

길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있
으면 true를 출력하고, 만들 수 없으면 false를 출력한다.
(삽입 정렬을 구현할 것)


예시

입력result
[6,7,11]true
[13,33,17]false

풀이

  • 삼각형 판별 공식은 두 변의 길이의 합이 가장 긴 변의 길이보다 길면 삼각형 이다.
  • 따라서 주어진 배열 내에서 작은 두 값과 가장 큰 값을 정렬을 통해 구하면 된다.
  • js 내부의 정렬 메소드를 이용하지 않고, 직접 삽입 정렬을 구현해서 풀어보았다.
  • 삽입 정렬은 배열을 돌면서 배열의 왼쪽 부분부터 차례대로 정렬해 나가는 방법을 이용한다.

코드

const isTriangle = (numbers) => {
    numbers = insertionSort(numbers);
    const c = numbers[numbers.length-1];

    if(number[0]+numbers[1] > c) return true;
    else return false;

} 

const insertionSort = (numbers) => {
    for(let i = 1; i < numbers.length; i++) {
        let current = numbers[i];
        let left = i - 1;

        while(left >=0 && numbers[left] > cur) {
            numbers[left+1] = numbers[left];
            left--;
        }

        numbers[left+1] = current;
    }

    return numbers;
}

회고

삽입정렬은 다시 공부해야겠다...

0개의 댓글