문제 설명
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
sides의 원소는 자연수입니다.
sides의 길이는 2입니다.
1 ≤ sides의 원소 ≤ 1,000
입출력 예
sides | result |
---|---|
[1, 2] | 1 |
[3, 6] | 5 |
[11, 7] | 13 |
function solution(sides) {
sides.sort((a,b)=>b-a)
let arrX = []
for(let i = sides[0]-sides[1]+1; i<= sides[0]; i++){
arrX.push(i)
}
for(let i = sides[0]; i<sides[0]+sides[1]; i++){
arrX.push(i)
}
let obj = {}
for(let el of arrX){
obj[el] = 0
}
return Object.keys(obj).length
}
sides.sort((a,b)=>b-a)
sides[0]
이 가장 긴 변의 길이일 때i
는 i+sides[1] > sides[0]
와 i<= sides[0]
을 만족하는 자연수여야 한다 let arrX = []
for(let i = sides[0]-sides[1]+1; i<= sides[0]; i++){
arrX.push(i)
}
i
가 가장 긴 변의 길이일 때i
는 sides[0]+sides[1] > i
와 i >= sides[0]
을 만족하는 자연수여야 한다 for(let i = sides[0]; i<sides[0]+sides[1]; i++){
arrX.push(i)
}
arrX
의 요소에서 중복된 수를 제거해야 한다. 객체 obj에 key에 배열arrX의 요소el을 할당하고, 그 객체의 key만 뽑아 생성한 배열의 길이는 곧 나머지 한 변이 될 수 있는 정수의 개수와 같다let obj = {}
for(let el of arrX){
obj[el] = 0
}
return Object.keys(obj).length