๋ฌธ์ œ

์ „์ฒด ์ง€๋„๋Š” ์ง€๋„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, '#'));
}

+ Recent posts