๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[codility] JS Lv3-3 TapeEquilibrium

by Tamii 2021. 9. 17.
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ  STEP 3-3 ) TapeEquilibrium

๋‚ด ํ’€์ด1 ( 46% )

function solution(A) {
    P = A.length

    const getSumArr = (arr)=>arr.reduce((prev,curr)=>prev+curr)

    let ans = 1000
    for (let i=1 ; i< P ; i++){
        const first = A.slice(0,i)
        const second = A.slice(i,P+1)

        diff = Math.abs(getSumArr(first)-getSumArr(second))
        ans = Math.min (diff,ans)

    }
    return ans
}

1) ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉฐ ํ•ด๋‹น ์ˆซ์ž์˜ ๋ฒ”์œ„๊นŒ์ง€ slicingํ•œ ๋ฐฐ์—ด์„ ๊ตฌํ•œ๋‹ค

2) ๊ทธ ๊ฐ’์„ diff์™€ ๋น„๊ตํ•ด์„œ min์„ ๊ตฌํ•œ๋‹ค 

 

๊ฒฐ๊ณผ๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ

๋‚ด๊ฐ€ ๊ฐ„๊ณผํ•œ ์ ์€ diff์˜ ์ตœ์†Œ๊ฐ’์ด 1000์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ ์   (์Œ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ)

์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด์„ ๋งค๋ฒˆ ๋งŒ๋“  ์   

 

๋‚ดํ’€์ด 2 (์ •๋‹ต)


function solution(A) {
    P = A.length
    let first = 0
    const getSumArr = (arr)=>arr.reduce((prev,curr)=>prev+curr)
    let second = getSumArr(A)
    

    let ans = 2000
    for (let i=1 ; i< P ; i++){
        first += A[i-1]
        second -= A[i-1]

        diff = Math.abs(first-second)
        ans = Math.min (diff,ans)

    }
    return ans
}

1) f๋ฐฐ์—ด๊ณผ s๋ฐฐ์—ด์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๊ฐ’์„ ์ง€์ •ํ•ด์ค€ ๋’ค ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•

 

์˜ค์˜ˆ~ ๋“œ๋””์–ด ์ •๋‹ต~

 

๐Ÿฅณ ์˜ค๋Š˜ ์•Œ๊ฒŒ๋œ TIP

 

1. ํŠน์ • ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•  ๋•Œ ๋ฐฐ์—ด์—์„œ ๊ตฌํ•˜์ง€ ์•Š๊ณ  ๋‘๊ฐœ์”ฉ ๋งค๋ฒˆ ๋น„๊ตํ•˜๋Š”๊ฒŒ ๋‚ซ๋‹ค.

2. ๋ถˆํ•„์š”ํ•œ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์ง€ ๋ง์ž.

๋Œ“๊ธ€