avatar
Published on

Codility - Triangle

Author
  • avatar
    Name
    yceffort

Triangle

문제

길이 N의 λ°°μ—΄ Aκ°€ μ£Όμ–΄μ§„λ‹€.

(P, Q, R)은 μ‚Όκ°ν˜•μ΄ 될 수 μžˆλŠ”λ°, μ΄λŠ”

  • 0 ≀ P < Q < R < N
  • A[P] + A[Q] > A[R]
  • A[Q] + A[R] > A[P]
  • A[R] + A[P] > A[Q]

λΌλŠ” 쑰건을 만쑱 ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

A[0] = 10
A[1] = 2
A[2] = 5
A[3] = 1
A[4] = 8
A[5] = 20

은 0, 2, 4 (10, 5, 8)둜 μ‚Όκ°ν˜•μ„ λ§Œλ“€ 수 μžˆμœΌλ―€λ‘œ 1을 λ¦¬ν„΄ν•œλ‹€. κ·ΈλŸ¬λ‚˜ λ§Œλ“€ 수 μ—†λ‹€λ©΄ 0을 λ¦¬ν„΄ν•œλ‹€.

μ£Όμ–΄μ§„ A λ°°μ—΄μ—μ„œ μ‚Όκ°ν˜•μ„ λ§Œλ“€ 수 μžˆλŠ” 3개의 쑰합이 μ‘΄μž¬ν•˜λŠ”μ§€ ν™•μΈν•΄μ„œ, μ‘΄μž¬ν•œλ‹€λ©΄ 1을, μ•„λ‹ˆλΌλ©΄ 0을 리턴해라.

풀이

function solution(A) {
  const sorted = A.sort((a, b) => a - b)

  for (let i = 0; i < sorted.length - 2; i++) {
    const a = sorted[i]
    const b = sorted[i + 1]
    const c = sorted[i + 2]

    if (a + b > c && b + c > a && a + c > b) {
      return 1
    }
  }

  return 0
}

https://app.codility.com/demo/results/training6R2NPK-JJH/