๋ฐ์ํ
๐ 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. ๋ถํ์ํ ๋ฐฐ์ด์ ์์ฑํ์ง ๋ง์.
'๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[codility] JS Lv4-3 MaxCounter (0) | 2021.09.24 |
---|---|
[codility] JS Lv4-1 ForgRiverOne (0) | 2021.09.18 |
[์ด์ฝ๋ค] ๊ทธ๋ฆฌ๋-๊ธฐ์ถ๋ฌธ์ (2) | 2021.08.31 |
[์ด์ฝ๋ค] ๊ธฐ์ถ๋ฌธ์ - ๊ทธ๋ฆฌ๋ (0) | 2021.08.25 |
[์ด์ฝ๋ค] ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2021.08.23 |
๋๊ธ