프로그래머스 | 삼각형을 만들 수 있는 조건

chaen·2024년 3월 2일
post-thumbnail

📌 문제

N개의 정수가 배열 arr로 주어졌을 때, 이 중 3개의 숫자를 골라 이 숫자들을 변의 길이로 하여 가장 긴 삼각형을 만들고 이 삼각형의 둘레를 구하는 프로그램을 구현하세요.

입출력 예

arranswer
{6, 2, 12, 8, 5, 9}12, 9, 829

✨ 해결 방법

세변의 길이가 주어질 때, 두 변의 길이의 합이 나머지 한 변의 길이보다 작거나 같으면 삼각형이 될 수 없습니다.
다시 말해 세변의 길이가 주어질 때 삼각형이 될 수 있는 조건은 두 변의 길이의 합이 나머지 한 변의 길이보다 커야 한다는 것입니다.

따라서 이 조건을 만족하는 조합 중에 가장 큰 숫자들의 조합을 구한 후 세 숫자의 합을 구하면 됩니다.

💻 solution

function solution(arr) {
    let sorted = arr.sort((a,b) => b - a);
    for (i = 0; i< sorted.length; i++){
        if (sorted[i] < sorted[i + 1] + sorted[i + 2]) {
            return sorted[i] + sorted[i + 1] + sorted[i + 2];
        }
    }
    return 0;
}

우선 쉽게 선택하기 위해 숫자를 큰 숫자부터 정렬합니다.
그 후 각 숫자를 도면서, 첫 번째 숫자가 두 번째와 세 번째로 큰 숫자의 합보다 작은지 조건을 제시하여 부합할 경우 세 숫자의 합을 출력합니다.

0개의 댓글