Algorithm Problem with JavaScript — 25day
비밀지도
네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다.
입력으로 지도의 한 변 크기 n 과 2개의 정수 배열 arr1, arr2가 들어온다.
원래의 비밀지도를 해독하여 '#', 공백으로 구성된 문자열 배열로 출력하라.
입력으로 한 변의 크기를 나타내는 n
, 지도를 나타내는 배열 arr1
, arr2
이 들어온다. arr1
과 arr2
의 요소들을 이진법으로 변환한 다음 0
-> 공백
, 1
-> #
로 변환한다. 두 배열을 합쳐서 하나라도 #
을 나타낸다면 #
으로 나타내고, 두 배열 모두 공백
을 나타내는 공간이라면 공백
으로 나타낸다. 이렇게 합쳐진 배열을 반환하면 된다.
입력으로 들어온 arr1
과 arr2
을 map
을 돌려서 요소로 들어있는 숫자들을 모두 이진법 숫자로 변환한다. (toString(2)
을 이용) 변환한 이후에 한 변의 크기를 나타내는 n
을 이용해서 이진법 숫자의 빈 곳을 채운다. 예를 들어 n
이 4인데 변환 전 숫자가 1이라면 이진법으로 변환된 숫자는 1이다. 비밀지도를 만들기 위해서는 0001
을 반환해야 하지만 1
을 반환함으로 여러 문제가 생길 수 있다. repeat
을 이용해서 빈 곳을 0
으로 채운다. 다음에는 0
은 공백
으로, 나머지는 #
으로 변환한다. split
을 이용해 배열로 변환한 다음 map
을 이용해 변환 작업을 하고 join
으로 다시 문자열로 만든다.