Algorithm/Programmers

[JS][프로그래머스]1차_비밀지도

문제 번호

 

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

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

programmers.co.kr

 

 

알고리즘 분류

 

 

문제 풀이

 toString(2)를 사용해서 원하는 숫자를 2진수로 변환하면 가장 큰 자리수가 0번 인덱스에 들어가게된다. 그래서 문제에서 주어진 숫자들을 2진수로 변환하고 reverse()를 사용하여 뒤집는다. 

        let first = arr1[i].toString(2).split('').reverse();
        let second = arr2[i].toString(2).split('').reverse();

 

 

그리고 이 결과로 만들어진 배열을 n-1 번 인덱스부터 탐색한다. 가장 왼쪽에 위치한 칸의 내용을 가장 먼저 넣기위함이다. 

#

##

##(공백)

##(공백)#

##(공백)#(공백) 이런식으로.

for(let j=n-1; j>=0; j--){
            if( Number(first[j]) === 1 || Number(second[j]) === 1)
                map += '#';
            else
                map += ' ';
        }
        answer.push(map);

 

 

전체코드

function solution(n, arr1, arr2) {
    var answer = [];    
    
    for(let i=0; i<n;i++){              
        let map = '';
        let first = arr1[i].toString(2).split('').reverse();
        let second = arr2[i].toString(2).split('').reverse();
        
        for(let j=n-1; j>=0; j--){
            if( Number(first[j]) === 1 || Number(second[j]) === 1)
                map += '#';
            else
                map += ' ';
        }
        answer.push(map);
    }
    
    return answer;
}

 

 

 

카카오 신입 공채 1차 코딩 테스트 문제 해설

‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인

tech.kakao.com

특이사항

 카카오테크 블로그에서 OR연산을 사용하기를 권장하고있다.