์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- ๊ณผ์ ํ ์คํธ
- DP
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค์ฑ์ฉ
- ์ฝํ
- ์ฝ๋ ํฌ๋ฉง
- ์ด๋ฏธ์ง ์์
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- ๋ฐฑ์ค
- Redux toolkit
- router v6
- JavaScript
- ์ฝ๋ฉํ ์คํธ
- Node.js
- ๋์ ๊ณํ๋ฒ
- ๋๋๊ทธ ์ด๋ฒคํธ
- React
- ์ด๋ถํ์
- icecandidate
- ๋ธ๋ฃจํธํฌ์ค
- ๋ฆฌ๋์ค ํดํท
- custom hook
- ์นด์นด์ค
- TypeScript
- ์๋ฐ์คํฌ๋ฆฝํธ
- js
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
๐ฅ dev-ruby
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋ฐ๋จน๊ธฐ - Lv.2 ์๋ฐ์คํฌ๋ฆฝํธ <์ฐ์ต๋ฌธ์ > ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋ฐ๋จน๊ธฐ - Lv.2 ์๋ฐ์คํฌ๋ฆฝํธ <์ฐ์ต๋ฌธ์ >
ruby_s 2021. 12. 22. 19:52๋ฌธ์ ์ค๋ช
๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ๋ (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) {
for(let i=1; i<land.length; i++){
land[i][0] += Math.max(land[i-1][1], land[i-1][2], land[i-1][3]);
land[i][1] += Math.max(land[i-1][0], land[i-1][2], land[i-1][3]);
land[i][2] += Math.max(land[i-1][0], land[i-1][1], land[i-1][3]);
land[i][3] += Math.max(land[i-1][0], land[i-1][1], land[i-1][2]);
}
return Math.max(...land[land.length-1]);
}
4์ด๋ก ์ ํด์ ธ์๊ณ , ๊ฐ ํ์ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ์ ์ด์ ์ ์ธํ๊ณ ์ด์ ํ์ ์ต๋๊ฐ์ ๋ฐ์ํด์ฃผ๋ฉด๋จ.
์ฒ์์ ํผ ํ์ด (ํ๋ฆผ)
function solution(land) {
let bestScore = [...land[0]];
for(let i=1; i<land.length; i++){
for(let j=0; j<land[i].length; j++){
bestScore[j] += land[i].reduce((acc, curr, idx) => {
if(idx !== j){
if(acc >= curr) return acc;
else return curr;
}
return acc;
});
console.log(bestScore);
}
}
return Math.max(...bestScore);
}
๋งค ํ๋ง๋ค ์ต๋๊ฐ์ ์ ๋ฐ์ดํธ ํ๋ฉด ๋๋ค๊ณ ์๊ฐํจ. ์์๊ฐ ๋ค์์ฌ์ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ๋์ถํ ์ ์์.