๋ฌธ์ ๋งํฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - [1์ฐจ] ๋น๋ฐ์ง๋
๋น๋ฐ์ง๋ ๋ค์ค๋ ํ์ ํ๋ก๋๊ฐ ๋น์๊ธ์ ์จ๊ฒจ๋๋ ์ฅ์๋ฅผ ์๋ ค์ค ๋น๋ฐ์ง๋๋ฅผ ์์ ๋ฃ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋น๋ฐ์ง๋๋ ์ซ์๋ก ์ํธํ๋์ด ์์ด ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ์ํธ๋ฅผ ํด๋ ํด์ผ ํ๋ค. ๋ค
programmers.co.kr
์ ๊ทผ ๋ฐฉ๋ฒ
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์
1. ์ฃผ์ด์ง ๋ฐฐ์ด arr1, arr2์ 2์ง์๋ก ๋ง๋ค์ด์ผ ํ๋ค.
2. 2์ง์๋ก ๋ง๋ ๋ฐฐ์ด์ or ์ฐ์ฐ์๋ก 1์ผ๋ "#", 0์ผ๋ " "์ผ๋ก ์นํํด์ผํ๋ค.
์์ ์กฐ๊ฑด๋๋ก ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์ ๋ผ์ ํฌ๊ฒ ์ด๋ ค์ด ์ ์ ์์๋ค.
๋ฐฐ์ด ๋ถ๋ถ์ซ์๋ฅผ 2์ง์๋ก ๋ณํํ ๋ ๊ทธ๋ฅ toString์ ์ฌ์ฉํ๋ฉด ์ํ๋ ์์๋๋ก ์ถ๋ ฅ๋์ง ์๋๋ค.num.toString(2).padStart(n, 0);โ
(๋ง์ฝ 3์ toStringํ๋ฉด 00011์ ์ํ์ง๋ง 11๋ก ์ถ๋ ฅ๋จ)
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด padStart๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๊ธฐ๋ฅผ n์ผ๋ก ๋ง์ถ๊ณ ๋น ๊ณต๊ฐ์ 0์ผ๋ก ์ฑ์ฐ๋๋ก ๋ง๋ค์๋ค.
parseInt(binaryArr1[i][j]) || parseInt(binaryArr2[i][j]) === 1โ
or ์กฐ๊ฑด์ ์ฌ์ฉํ๋ ๋ถ๋ถ์์ parseInt๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์์ด "0", "1"์ด ๋ค์ด๊ฐ์ ์ ๋๋ก๋ ๋น๊ต๋ฅผ ํ์ง ๋ชปํ๋ค.
parseInt๋ก ์ ์ํ์ผ๋ก ๋ง๋ค์ด ์ค์ผ ํ๋ค.
function solution(n, arr1, arr2) {
var answer = [];
const binaryArr1 = [];
const binaryArr2 = [];
arr1.forEach((e) => {
binaryArr1.push(makeBinary(n, e));
});
arr2.forEach((e) => {
binaryArr2.push(makeBinary(n, e));
});
for (let i = 0; i < n; i++) {
let resultStr = '';
for (let j = 0; j < n; j++) {
if (parseInt(binaryArr1[i][j]) || parseInt(binaryArr2[i][j]) === 1) {
resultStr += '#';
} else {
resultStr += ' ';
}
}
answer.push(resultStr);
}
return answer;
}
const makeBinary = (n, num) => {
return num.toString(2).padStart(n, 0);
};
๋ค๋ฅธ ๋ถ์ ํ์ด๋ฅผ ๋ณด๋
for (let i = 0; i < n; i++) { let row = (arr1[i] | arr2[i]).toString(2); //Bitwise row = "0".repeat(n - row.length) + row; }โ
2์ง์ ๋ณํ ๋ถ๋ถ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ์๋ค.
๋นํธ or ์ฐ์ฐ์.. ๋ถ๋ช ์ด์ฐ ์ํ ์๊ฐ์ ๋ฐฐ์ ๋ ๋ด์ฉ์ธ๋ฐ ๋ค์ ์๊ธฐํ ์ ์์๋ค.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_OR_assignment
| : ์ ์๋ฅผ bit๋ก ๋ณํํ์ฌ or ์ฐ์ฐ์ ํ ๋ค, ๋ค์ ์ ์๋ก ๋ณํํ๋ค. ๊ทธ๋์ ๋ค์ toString์ ํ๋ฉด or ์ฐ์ฐํ bit ํํ๋ก ๋ํ๋๋ค.
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] 2016๋ (12901) (0) | 2022.06.06 |
---|---|
[Javascript] ์์ ์ต๋ํ (67257) (0) | 2022.06.03 |
[Javascript] ์ผ๊ฐ ๋ฌํฝ์ด (68645) (0) | 2022.05.29 |
[Javascript] ๊ดํธ ํ์ ํ๊ธฐ (76502) (0) | 2022.05.27 |
[Javascript] ์ต์์ง์ฌ๊ฐํ (86491) (0) | 2022.05.27 |