프로그래머스 Lv.1 [1차] 비밀지도
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function solution(n, arr1, arr2) { let answer = []; let arr = []; // arr1, arr2 정사각형 변의 길이에 맞게 이진수 변경 for(let i = 0; i < arr1.length; i++) { arr1[i] = arr1[i].toString(2); arr2[i] = arr2[i].toString(2); for(let j = 0; j < arr1.length; j++) { if(arr1[i].length < n) arr1[i] = `0${arr1[i]}`; if(arr2[i].length < n) arr2[i] = `0${arr2[i]}`; } } // 지도 완성 시키기 for(let i = 0; i < arr1.length; i++) { let a = []; for(let j = 0; j < arr1[i].length; j++) { if(arr1[i][j] === "1" || arr2[i][j] === "1") { a.push('#'); } else a.push(' '); } arr.push(a.join('')); } return arr; } | cs |
먼저
arr1
과arr2
를 정사각형 변의 길이에 맞게 2진수로 변환해준다.이중 반복문을 사용하여 바깥쪽 반복문은
i
가 0부터arr1
의 길이까지 반복하고, 안쪽 반복문은j
가 0부터arr1
의 길이까지 반복한다.바깥쪽 반복문에서
arr1[i]
와arr2[i]
를 2진법으로 변환한다.안쪽 반복문에서
arr1[i]
와arr2[i]
의 길이가n
보다 작으면 앞에 0을 붙여준다.2진수 변환된
arr1
과arr2
를 이용하여 지도를 완성 시킨다.이중 반복문을 사용하여 바깥쪽 반복문은
i
가 0부터arr1
의 길이까지 반복하고, 안쪽 반복문은j
가 0부터arr1[i]
의 길이까지 반복한다.바깥쪽 반복문에서
a
라는 빈 배열을 하나 선언한다.안쪽 반복문에서 만약
arr1[i][j]
가 1이거나arr2[i][j]
가 1이라면 빈 배열a
에 #을push
해준다.
둘 다 0이라면 빈 배열a
에 빈 칸을push
해준다.다시 바깥쪽 반복문에서 #과 빈 칸으로 채워진 배열
a
를join
을 사용하여 문자열로 변환한다.
이 문자열을 빈 배열arr
에push
해준다.마지막으로 완성된 비밀지도
arr
을 return 한다.