호지

[프로그래머스] 1차 비밀지도 문제풀이 JS 본문

알고리즘/프로그래머스

[프로그래머스] 1차 비밀지도 문제풀이 JS

_hoji

nxn 정사각형에서 arr1과 arr2의 숫자를

n자리의 2진수로 치환해서,

해당 위치가 arr1이나 arr2에서든 1이면 #이되고,

아닐 경우엔 공백이 되는 문제이다.

따라서 2진수로 치환하기 위해 toString(2)를 사용했고,

n자리의 문자열로 만들이 위해 ES17부터 지원하는

padStart를 사용했다.

arr1과 arr2를 각각 n자리의 2진수로 치환해 각 자릿수를 탐색하면서,

둘 중 하나가 1일경우엔 password에 #을, 

아닐 경우엔 공백을 추가하고

한줄이 끝나면 해당 결과를 answer에 push한다.

모든 줄에 대해서 위 과정을 반복하면

원하는 결과를 구할 수 있다.

function solution(n, arr1, arr2) {
  let answer = []
  for (let i = 0; i < n; i++) {
    let key1 = arr1[i].toString(2).padStart(n, 0)
    let key2 = arr2[i].toString(2).padStart(n, 0)
    let password = ''
    for (let j = 0; j < n; j++) {
      if (key1[j] === '1' || key2[j] === '1') password += '#'
      else password += ' '
    }
    answer.push(password)
  }
  return answer
}

https://school.programmers.co.kr/learn/courses/30/lessons/17681

Comments