알고리즘/level 1

비밀지도 - javascript

민트초코수장 2021. 1. 6. 23:28

1. 문제

 


2. 문제풀이

 

비밀지도는 두개로 이루어져 있는데 두 비밀지도를 합치면 암호를 해독하는 지도가 나온다는 내용입니다.

그래서 가로를 기준으로 공백은 0 #이 있는 칸은 1로 되어있어 2진법으로 바꾸어 배열에 삽입되어 있습니다.

그 값들을 합쳐 비밀지도를 해독하고 벽이 있는 부분은 #없는 부분은 공백으로 나타내야 합니다.

 


3. 풀이 방법

 

저는 일단 arr1과 arr2의 값들을 2진법으로 나타내고 그 값을 합치려고 했으나

javascript는 or연산을 사용하면 2진법으로 계산이 된다는 것을 알게 된 후 or연산을 한 후에 2진법으로 나타냈습니다.

 

그 다음 1과 0를 #과 공백으로 나타내기 위해 replace와 정규표현식을 이용해 바꿔주었습니다.

 


4. 전체적인 코드

 

toString(2)같은 경우는 2진법으로 바꾼다는 뜻입니다.

그리고 정규표현식에서 gi는 g는 전체, i는 대소문자 구별 x이기 때문에 전체를 바꿀 수 있었습니다.

 

마지막으로 앞에 공백이 나왔을 경우를 계산하여 concat을 이용해 n과 길이가 맞지 않으면 공백을 채워넣을 수 있도록 하였습니다.

 

 

 

 


programmers.co.kr/learn/courses/30/lessons/17681

 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr

 

반응형