2023. 8. 4. 15:54ใStudy_Develop/์๊ณ ๋ฆฌ์ฆ | ์ฝ๋ฉํ ์คํธ
ํ๋ก๊ทธ๋๋จธ์ค - ์์ด๊ณผ ๊ตฌ๊ฐ ์ฟผ๋ฆฌ 4 - js
๋ฌธ์
์ ์ ๋ฐฐ์ด arr์ 2์ฐจ์ ์ ์ ๋ฐฐ์ด queries์ด ์ฃผ์ด์ง๋๋ค. queries์ ์์๋ ๊ฐ๊ฐ ํ๋์ query๋ฅผ ๋ํ๋ด๋ฉฐ, [s, e, k] ๊ผด์
๋๋ค.
๊ฐ query๋ง๋ค ์์๋๋ก s ≤ i ≤ e์ธ ๋ชจ๋ i์ ๋ํด i๊ฐ k์ ๋ฐฐ์์ด๋ฉด arr[i]์ 1์ ๋ํฉ๋๋ค.
์ ๊ท์น์ ๋ฐ๋ผ queries๋ฅผ ์ฒ๋ฆฌํ ์ดํ์ arr๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
1 ≤ arr์ ๊ธธ์ด ≤ 1,000
0 ≤ arr์ ์์ ≤ 1,000,000
1 ≤ queries์ ๊ธธ์ด ≤ 1,000
0 ≤ s ≤ e < arr์ ๊ธธ์ด
0 ≤ k ≤ 5
์ ์ถ๋ ฅ ์
arr | queries | result |
[0, 1, 2, 4, 3] | [[0, 4, 1],[0, 3, 2],[0, 3, 3]] | [3, 2, 4, 6, 4] |
์ ์ถ๋ ฅ ์
๊ฐ ์ฟผ๋ฆฌ์ ๋ฐ๋ผ arr๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ณํฉ๋๋ค.
arr |
[0, 1, 2, 4, 3] |
[1, 2, 3, 5, 4] |
[2, 2, 4, 5, 4] |
[3, 2, 4, 6, 4] |
๋ฐ๋ผ์ [3, 2, 4, 6, 4]๋ฅผ return ํฉ๋๋ค.
solution.js
function solution(arr, queries) {
return queries.reduce((acc, cur) => {
const copyArr = [...acc]
const [to, from, val] = cur
return copyArr.map((el, elIdx) => {
if(elIdx >= to && elIdx <= from) {
if(elIdx%val === 0) return el+1
}
return el
})
}, arr)
}
- reduce ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ queries๋ฐฐ์ด์ ์ํ ์ํจ๋ค.
- acc์ ์ฌ๋ณธ์ ๋ง๋ค์ด copyArr์ ํ ๋นํ๋ค.
- copyArr๋ฐฐ์ด์ map๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์์๋ฅผ ์ํํ๋ค.
- ํ์ฌ ์์์ ์ธ๋ฑ์ค elIdx๊ฐ to์ from ์ฌ์ด์ ์์นํ๋์ง ํ์ธ
- ๋ง์ฝ ๋๋จธ์ง๊ฐ 0์ด๋ผ๋ฉด, ํ์ฌ ์์ 'el'์ 'val'๊ฐ์ ๋ํด์ค๋ค.
- map ๋ฉ์๋์ ์ํด ๋ณํ๋ ์์๋ค์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
- ๋ชจ๋ ์ฟผ๋ฆฌ์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋๋๋ฉด, ์ต์ข ์ ์ผ๋ก ๋ณ๊ฒฝ๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
'Study_Develop > ์๊ณ ๋ฆฌ์ฆ | ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ์์ด๊ณผ ๊ตฌ๊ฐ ์ฟผ๋ฆฌ 2 - js (0) | 2023.07.29 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ์์ด๊ณผ ๊ตฌ๊ฐ ์ฟผ๋ฆฌ 3 - js (1) | 2023.07.28 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ ์กฐ์ํ๊ธฐ 2 - js (reduce ๋ฉ์๋, switch - case๋ฌธ) (0) | 2023.07.27 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ ์กฐ์ํ๊ธฐ 1 - js (0) | 2023.07.27 |
ํ๋ก๊ทธ๋๋จธ์ค - ๋ง์ง๋ง ๋ ์์ - js (at ๋ฉ์๋) (0) | 2023.07.27 |