๋ฌธ์
์ ์ฒด ์ง๋๋ ์ง๋1๊ณผ ์ง๋2๋ฅผ ๊ฒน์ณ์ ์ป์ ์ ์๋ค.
์ง๋1 ๋๋ ์ง๋2 ์ค ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์ ๋ฒฝ์ด๋ค.
์ง๋1 ๊ณผ ์ง๋2 ์์ ๋ชจ๋ ๊ณต๋ฐฑ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์ ๊ณต๋ฐฑ์ด๋ค.
์ง๋1(arr1)๊ณผ ์ง๋2(arr2)๋ ์ ์ ๋ฐฐ์ด๋ก ์ํธํ
์ํธํ๋ ๋ฐฐ์ด์ ๋ฒฝ ๋ถ๋ถ์ 1, ๊ณต๋ฐฑ ๋ถ๋ถ์ 0์ผ๋ก ๋ถํธํํ์ ๋ ์ป์ด์ง๋ ์ด์ง์์ ํด๋นํ๋ ๊ฐ์ ๋ฐฐ์ด์ด๋ค.
์กฐ๊ฑด
1. ์ง๋1 ๋๋ ์ง๋2 ์ค ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์ ๋ฒฝ์ด๋ค.
2. ์ง๋1 ๊ณผ ์ง๋2 ์์ ๋ชจ๋ ๊ณต๋ฐฑ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์ ๊ณต๋ฐฑ์ด๋ค.
3) ๊ฒน์ณ์ง ์ง๋๋ฅผ #๊ณผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ์ถ๋ ฅํ๋ค.
๋นํธ์ฐ์ฐ
์ถ์ ์๋๋ ๋นํธ ์ฐ์ฐ์ ์ด์ฉํด์ ํ๊ธฐ๋ฅผ ์ํ๋ ๋ฌธ์ ์๋ค.
์ฃผ์ด์ง ์๋ฅผ 2์ง์๋ก ๋ณํ -> ๋น๊ต -> ๋น๊ต๊ฒฐ๊ณผ๊ฐ์ 10์ง์๋ก ๋ณํ ๋ฐ ์ถ๋ ฅ
๋นํธ : ์ปดํจํฐ์์ ์ ๋ณด ํํ์ ์ต์ ๋จ์
๋นํธ์ฐ์ฐ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก 2์ง์ ํํ๋ฒ
๋นํธ ์ฐ์ฐ์
- & : ๋น๊ตํ๋ ๋นํธ๊ฐ ๋ชจ๋ 1์ด๋ฉด 1 ๋ฐํ
- | : ๋น๊ตํ๋ ๋นํธ ์ค์์ ํ๋๋ผ๋ 1์ด๋ฉด 1๋ฐํ
- ^ : ๋น๊ตํ๋ ๋นํธ๊ฐ ๊ฐ์ผ๋ฉด 0, ๋ค๋ฅด๋ฉด 1 ๋ฐํ
- << : ์ง์ ํ ์ ๋งํผ ๋นํธ ์ ์ฒด๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋
- >> : ์ง์ ํ ์ ๋งํผ ๋นํธ ์ ์ฒด๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋
- >>> : ์ง์ ํ ์ ๋งํผ ๋นํธ๋ฅผ ์ ๋ถ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋, ์๋ก์ด ๋นํธ๋ ์ ๋ถ 0์ด๋๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ
์ผ๋จ ์ฒซ ๋ฒ์งธ๋ก๋ ์ง๋ 2๊ฐ๋ฅผ ํด์ํด์ ๊ฒน์ณ์ผ๊ฒ ๋ค.
1) ์ญ์ง์๋ก ์ฃผ์ด์ง ์ซ์๋ฅผ ์ด์ง์๋ก ๋ฐ๊พผ๋ค.
2) ์ง๋ 2๊ฐ๋ฅผ(arr1, arr2)๋ฅผ ๊ฒน์น๋ค(ํฉ์น๋ค)
์ฝ๋
const solution = (n, arr1, arr2) => {
let answer = [];
// 2์ง์๋ก ๋ณํํ๊ณ , 0์ ์ฑ์์ n์๋ฆฌ ๋ง์ถ๊ธฐ
let binaryNumArr1 = arr1.map((i, idx) => arr1[idx].toString(2).padStart(n, '0'));
let binaryNumArr2 = arr2.map((i, idx) => arr2[idx].toString(2).padStart(n, '0'));
// ์ด์คfor๋ฌธ์ผ๋ก ๋น๊ตํ๋ฉด์ #๋๋ ๊ณต๋ฐฑ์ผ๋ก ๋ง์ถฐ์ฃผ๊ธฐ
for (let i = 0; i < n; i++) {
let allArr = '';
for (let j = 0; j < n; j++) {
if (binaryNumArr1[i][j] === '1' || binaryNumArr2[i][j] === '1') {
allArr += '#';
} else {
allArr += ' ';
}
}
answer.push(allArr);
}
return answer;
}
toString๋ฉ์๋
์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋ฐํํ๋ค.
๋นํธ์ฐ์ฐ์ ์ด์ฉํ ๋ค๋ฅธ ํ์ด
ํ์ค๋ก ํด๊ฒฐํ ์๊ฐ ์์๋ค....
const solution = (n, arr1, arr2) => {
return arr1.map((i, index) => ('0'.repeat(n) + (i | arr2[index]).toString(2)).slice(-n)).map(i => i.replace(/0/g, ' ').replace(/1/g, '#'));
}
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2021.09.14 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋คํธ๊ฒ์ (0) | 2021.09.13 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์คํจ์จ (0) | 2021.09.10 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋ชจ์๊ณ ์ฌ (0) | 2021.09.09 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์์ด ์์ถ (2) | 2021.05.13 |