2021-06-04 20:56:41
주어진 배열 내에서 삼각형에 해당하는 삼중항이 있으면 1을 반환, 없으면 0을 반환하는 문제입니다.
A [P] + A [Q] > A [R],
A [Q] + A [R] > A [P],
A [R] + A [P] > A [Q].
이 세 조건에 부합해야 삼각형이 형성된다는 말인데요.
예시로 나온 (0, 2, 4) 삼중항을 보면 (10, 5, 8) 이라는 숫자가 삼각형이 된다는 예시입니다.
즉, 배열에 주어진 요소들 중 세가지 요소를 골랐을 때, 2가지 요소의 합은 항상 남은 요소보다 커야 한다는 조건입니다.
function solution(A) {
let arr = A.slice()
let answer = 0
arr = arr.sort((a, b) => a - b)
for (let i = 0; i < arr.length; i++) {
if (i === arr.length - 2) break
if (arr[i] + arr[i + 1] > arr[i + 2]) {
answer++
break
}
}
return answer
}