-
๋ฌธ์ 95. ๋์ฅ์ฐ๊ธฐ๐ง codingtest/javascript 100์ 2022. 4. 28. 08:31728x90
- ๋น ์ข ์ด์ stemp ๋ชจ์์ผ๋ก ์๊ธด ๋์ฅ์ 90º ๋ก ํ์ ํ๋ฉฐ ์ฐ๋๋ค. ๋์ฅ์ ํฌ๊ธฐ๋ N*N ํฌ๊ธฐ, ๋์ฅ์ด ์ฐํ๋ ๋ถ๋ถ์ 1์ด์์ ์์ฐ์์ ๋์ฅ์ด ์ฐํ์ง ์๋ 0์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์.
- ์ข ์ด์ ์ฐํ ๋์ฅํ์๋ฅผ ํํํ stmp ๋ฐฐ์ด๊ณผ ์ผ๋งํผ ํ์ ํ ๊ฒ์ธ์ง ์๋ ค์ฃผ๋ ํ์ ์ k๋ฅผ ์ ๋ ฅ๋ฐ์์๋
๊ฐ ์์น์์ ๋ช๋ฒ ๋์ฅ์ด ์ฐํ๋์ง ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅํ์์ค
// ์ ๋ ฅ ๋์ฅ = [ [1, 1, 1, 2], [2, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 0], ]; ํ์ = 1; // ์ถ๋ ฅ [ [1, 2, 3, 3], [2, 1, 0, 1], [1, 2, 1, 2], [0, 1, 0, 2], ];
๋ฏธ๋ฆฌ ์๊ฐํด ๋ด์ผํ ๊ฒ
- ์ด๋ค ๊ท์น์ผ๋ก ๋๋์ง ์๊ฐํด๋ณธ๋ค.
i,j -> j,N-1-i 0,0 -> 0,3 0,1 -> 1,3 0,2 -> 2,3 0,3 -> 3,3 1,0 -> 0,2 1,1 -> 1,2 1,2 -> 2,2 1,3 -> 3,2 2,0 -> 0,1 2,1 -> 1,1 2,2 -> 2,1 2,3 -> 3,1 3,0 -> 0,0 3,1 -> 1,0 3,2 -> 2,0 3,3 -> 3,0
๋ต
let stmp = [ [1, 1, 1, 2], [2, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 0], ]; let k = 1; function sol(stmp, k) { let n = stmp.length; let p = []; for (let i = 0; i < n; i++) { p.push(Array(n).fill(0)); //0์ผ๋ก ์ฑ์์ง n*n ๋ฐฐ์ด์ ๋ง๋ค์ด์ค๋ค } // console.log(p) // ํ์ ์ํค๊ธฐ ์ ํ๋ฒ ์ฐ์ด์ฃผ๊ธฐ p = sum_matrix(p, stmp); for (let i = 0; i < k; i++) { stmp = rotate(stmp); p = sum_matrix(p, stmp); } return p; } // ํ์ function rotate(stmp) { let n = stmp.length; let rot = []; for (let i = 0; i < n; i++) { rot.push(Array(n).fill(0)); } for (let i = 0; i < n; i++) { for (let j = 0; j < n; j++) { rot[j][n - 1 - i] = stmp[i][j]; } } return rot; } //์ดํฉ function sum_matrix(p, stmp) { let n = stmp.length; for (let i = 0; i < n; i++) { for (let j = 0; j < n; j++) { p[i][j] += stmp[i][j]; } } return p; } console.log(sol(stmp, k));
'๐ง codingtest > javascript 100์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฌธ์ 97. ํ๋ฐฐ ๋ฐฐ๋ฌ (0) 2022.05.02 ๋ฌธ์ 96. ๋์ ํ ๋ฐญ ๋ง๋ค๊ธฐ (0) 2022.04.29 ๋ฌธ์ 86. ํ์ ์ด๋ฐฅ (0) 2022.04.27 ๋ฌธ์ 85. ์ซ์๋์ด(์ซ์ ๋์ ์ํค๊ธฐ) (0) 2022.04.26 ๋ฌธ์ 76. ์์ ํ ๋ (0) 2022.04.20