TIL28-05 오늘의 코딩테스트

김태혁·2023년 2월 10일
0

TIL

목록 보기
92/205

1. 삼각형의 완성조건 (2)

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야다.

가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.

삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.

sides result
[1, 2] 1
[3, 6] 5
[11, 7] 13

2. 풀이과정

  • 주어진 조건을 활용해 삼각형의 조건을 구체적으로 생각했다.
  • 주어진 두 변중 큰 값이 삼각의 가장 긴 변일 때와, 나머지 한 변이 가장 긴 변인 두 가지 경우의 조건을 대입해봤다.
  • 나머지 한변을 x로 할 때,
    1) 주어진 두 수 중 큰 수가 가장 긴 변일 때 a,b (a>b)
    = a < x+ b 가 되며, x만 남기고 b를 왼쪽변으로 넘기면 a-b < x <=a 가된다.
    2) x 가장 긴 변 일때, (a >b)
    = a<= x < a+b 가 된다.
  • 1)과 2)를 합치면 x 는 a-b < x < a+b 가 된다.
  • 이 조건을 코드로 만든다.
function solution(sides) {
    let answer = 0;
    let a = sides.sort( (a,b) => a-b); //주어진 배열을 오름차순으로 정렬해준다.
    for ( let i = 1; i < a[0]+a[1]; i ++) {
        if ( a[1]-a[0] < i)
        answer++ //갯수를 구하는 문제이므로 answer를 더해준다.
    }
    return answer;
}
profile
도전을 즐기는 자

0개의 댓글