- Published on
Codility - Tape Equilibrium
- Author
- Name
- yceffort
Tape Equilibrium
λ¬Έμ
κΈΈμ΄ Nμ λ°°μ΄μ μμλ‘ λκ°λ‘ μͺΌκ°κ³ , μ΄λ κ² ν΄μ μκΈ΄ λλ°°μ΄μ ν©μ κ°κ° ꡬν λ, μ΄ μλ‘ λν©μ μ°¨μ΄κ° κ°μ₯ μμ κ²½μ°λ₯Ό ꡬνλΌ.
A[0] = 3
A[1] = 1
A[2] = 2
A[3] = 4
A[4] = 3
μ΄κ²½μ° λ€κ°μ§λ‘ μͺΌκ°€ μ μλλ°
P = 1, difference = |3 β 10| = 7
P = 2, difference = |4 β 9| = 5
P = 3, difference = |6 β 7| = 1
P = 4, difference = |10 β 3| = 7
μ¬κΈ°μ λ΅μ 1μ΄λ€
νμ΄
function solution(A) {
// μ’μΈ‘ SUM
let leftSum = 0
// μ°μΈ‘ SUM
let rightSum = A.reduce((a, b) => a + b, 0)
// μμ§ λ΅μ μμ
let answer = null
// λ°°μ΄μ μννλ©΄μ
for (let i = 0; i < A.length - 1; i++) {
// μΌμͺ½ SUMμ νλμ© μΆκ°
leftSum += A[i]
// μ€λ₯Έμͺ½ SUMμ νλμ© μ κ±°
rightSum -= A[i]
// λμ μ°¨μ΄ κ³μ°
const diff = Math.abs(leftSum - rightSum)
// λμ μ°¨μ΄κ° νλλ κ³μ°μ΄ μλμ΄ μκ±°λ, νμ¬ κ°λ³΄λ€ μ°¨μ΄κ° μ λ€λ©΄ κ°±μ
if (answer === null || answer > diff) {
answer = diff
}
}
return answer
}