๋ณธ ํฌ์คํธ๋ ํฐ์คํ ๋ฆฌ Vintz ๋์ [ํ๋ก๊ทธ๋๋จธ์ค]๋ ๋ฐ๋จน๊ธฐ | JavaScript
๋ฌธ์ ์ค๋ช
๋
๋ฐ๋จน๊ธฐ ๊ฒ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋
๋ฐ๋จน๊ธฐ ๊ฒ์์ ๋
(land)์ ์ด Nํ 4์ด๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋ชจ๋ ์นธ์๋ ์ ์๊ฐ ์ฐ์ฌ ์์ต๋๋ค. 1ํ๋ถํฐ ๋
์ ๋ฐ์ผ๋ฉฐ ํ ํ์ฉ ๋ด๋ ค์ฌ ๋, ๊ฐ ํ์ 4์นธ ์ค ํ ์นธ๋ง ๋ฐ์ผ๋ฉด์ ๋ด๋ ค์์ผ ํฉ๋๋ค. ๋จ, ๋
๋ฐ๋จน๊ธฐ ๊ฒ์์๋ ํ ํ์ฉ ๋ด๋ ค์ฌ ๋, ๊ฐ์ ์ด์ ์ฐ์ํด์ ๋ฐ์ ์ ์๋ ํน์ ๊ท์น์ด ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด,
| 1 | 2 | 3 | 5 |
| 5 | 6 | 7 | 8 |
| 4 | 3 | 2 | 1 |
๋ก ๋ ์ด ์ฃผ์ด์ก๋ค๋ฉด, 1ํ์์ ๋ค๋ฒ์งธ ์นธ (5)๋ฅผ ๋ฐ์์ผ๋ฉด, 2ํ์ ๋ค๋ฒ์งธ ์นธ (8)์ ๋ฐ์ ์ ์์ต๋๋ค.
๋ง์ง๋ง ํ๊น์ง ๋ชจ๋ ๋ด๋ ค์์ ๋, ์ป์ ์ ์๋ ์ ์์ ์ต๋๊ฐ์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ์์ ๊ฒฝ์ฐ, 1ํ์ ๋ค๋ฒ์งธ ์นธ (5), 2ํ์ ์ธ๋ฒ์งธ ์นธ (7), 3ํ์ ์ฒซ๋ฒ์งธ ์นธ (4) ๋ ์ ๋ฐ์ 16์ ์ด ์ต๊ณ ์ ์ด ๋๋ฏ๋ก 16์ return ํ๋ฉด ๋ฉ๋๋ค.
์ ํ์ฌํญ
ํ์ ๊ฐ์ N : 100,000 ์ดํ์ ์์ฐ์
์ด์ ๊ฐ์๋ 4๊ฐ์ด๊ณ , ๋
(land)์ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค.
์ ์ : 100 ์ดํ์ ์์ฐ์
์
์ถ๋ ฅ ์
land answer
[[1,2,3,5],[5,6,7,8],[4,3,2,1]] 16
์ฝ๋ ์์
function solution(land) {
const result = []
const len = land.length
// ํ ์นธ ์์์ ์์ํจ
for(let i = 1; i < len ; i ++) {
// ํ ๋
์ ๊ฐ์ ๋ชจ๋ ์ํ
land[i] = land[i].map((el,idx) => {
// ์ด์ ๋
์์ ๋ด๊ฐ ๋ฐ์ ์ค์ ๊ฐ์ ์ ๊ฑฐ
const box = land[i-1].slice()
box.splice(idx,1)
// ๋ด๊ฐ ๋ฐ์ ๋
์ ๊ฐ๊ณผ ์ด์ ๋
์ ์ต๋๊ฐ์ ๋ํด์ return
return el+ Math.max(...box)
})
}
// ๋ง์ง๋ง ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ return
return Math.max(...land[len-1])
}