function solution(arr1, arr2) {
// arr1 -> p * q , arr2 -> q * r
let p = arr1.length;
let q = arr2.length;
let r = arr2[0].length;
let answer = new Array(p);
for (let i = 0; i < p; i++) {
answer[i] = new Array(r).fill(0);
}
for (let i = 0; i < p; i++) {
let row1 = arr1[i];
for (let j = 0; j < q; j++) {
let first = row1[j];
let row2 = arr2[j];
for (let k = 0; k < r; k++) {
let second = row2[k];
answer[i][k] += first * second;
}
}
}
return answer;
}
- ์ฃผ์ด์ง ๋ ํ๋ ฌ์ ํ๊ณผ ์ด์ ๋ํ ๊ธธ์ด๋ฅผ ๊ฐ๊ฐ p, q, r๋ก ์ ์ธ ๋ฐ ํ ๋นํฉ๋๋ค.(์ด ๋, q๋ ์ฒซ๋ฒ์งธ ํ๋ ฌ์ ์ด์ด๋ฉด์ ๋๋ฒ์งธ ํ๋ ฌ์ ํ)
- p * q ํ๋ ฌ๊ณผ q * r ํ๋ ฌ์ ๊ณฑ์ p * r ํ๋ ฌ์ด๋ฏ๋ก ๊ทธ์ ๋ง๊ฒ answer ๋ฐฐ์ด์ ์ ์ธ ๋ฐ ํ ๋นํด์ค๋๋ค. ์ด ๋, ๊ฐ ๋ฐฐ์ด์ ๊ฐ์๋ 0์ ์ฑ์์ค๋๋ค.(์ถํ ๋ฐ๋ณต๋ฌธ์ ํตํด ๊ณฑํ ๊ฐ์ ๋ํ ๋, ๋ฐ๋ณต์ ์ผ๋ก ๋ง์ ์ ํ๊ธฐ ์ํจ)
- ์ฒ์ p๋ฅผ ํตํด ์ฒซ๋ฒ์งธ ํ๋ ฌ์ iํ์ ์ ์ธ ๋ฐ ํ ๋น, q๋ฅผ ํตํด iํ์ j์ด ์ฆ, ์ฒซ๋ฒ์งธ ํ๋ ฌ์ ์์๋ฅผ first๋ก ์ ์ธํฉ๋๋ค. ์ด ๋, ๋์์ ๋๋ฒ์งธ ํ๋ ฌ์ jํ์ ์ ์ธ ๋ฐ ํ ๋นํฉ๋๋ค.
- ๋ค์ r์ ํตํด jํ์ k์ด ์ฆ, ๋๋ฒ์งธ ํ๋ ฌ์ ์์๋ฅผ second๋ก ์ ์ธํฉ๋๋ค. ๋ํ, ์์ first(์ฒซ๋ฒ์งธ ํ๋ ฌ์ ๊ฐ)๊ณผ second(๋๋ฒ์งธ ํ๋ ฌ์ ๊ฐ)์ ๊ณฑํ ๊ฒ์ answer[i][k]์ ๋ํ๊ธฐ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
ํ๋ ฌ์ ๊ณฑ์
์ ํํํ๊ธฐ ์ํด ์ผ์ค๋ฐ๋ณต๋ฌธ์ ์ฐ๋ค๋ณด๋๊น ๋ค์ ํท๊ฐ๋ฆฌ๋๋ฐ, i j k ์ ๋ํด ์ฒ์ฒํ ์์ผ๋ก ์จ๊ฐ๋ฉด์ ๋์ผ๋ก ๋ณด๋ฉด ์ด๋ป๊ฒ ์ด๊ฒ ํ๋ ฌ์ ๊ณฑ์
์ด ๋๋์ง ์ ์ ์๋ค.
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค ์ค์ '์ ์ด๊ฑด ์ปดํจํฐ๊ฐ ๊ณ์ฐํ๋ ๊ฒ ํจ์ฌ ํธํ๋ค' ์ถ์ ๊ฒ ๋ง์๋ฐ, ์ด ๋ฌธ์ ๋ '์ ์ด๊ฑด ๋ด๊ฐ ๊ณ์ฐํ๋ ๊ฒ ๋ ํธํ๊ฒ ๋ค'์ถ์ ๋ฌธ์ ์๋ค.ใ
ใ
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.07.06 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ์ซ์ ๋ธ๋ก (0) | 2022.07.05 |
[JS] ์ฐ์ต๋ฌธ์ - ์ต์๊ฐ ๋ง๋ค๊ธฐ (0) | 2022.07.05 |
[JS] ์ฐ์ต๋ฌธ์ - ์ซ์์ ํํ (0) | 2022.07.05 |
[JS] ์ฐ์ต๋ฌธ์ - ํผ๋ณด๋์น ์ (0) | 2022.07.03 |