[JavaScript] 비밀지도

ladiolus·2023년 3월 27일
0

programmers

목록 보기
2/25
post-thumbnail

⏱️ 08:43.62

주어진 두 개의 배열 값을 이진수로 변환하는 것이다.
겹치는 값이 둘 다 0을 가질때는 공백으로, 나머지는 #으로 출력한다.
전에 풀어봤던 문제라 금방 풀 수 있었다. 💃


CODE

function solution(n, arr1, arr2) {
    return arr1.map((num, idx) => {
        let secret = (num | arr2[idx]).toString(2).padStart(n);
        return secret.replace(/1/g,'#').replace(/0/g,' ');
    });
}

비트 연산자 💬

비트 연산자는 주어진 수를 2진수로 변환해서 비트(bit) 단위로 논리 연산을 수행한다.

AND(&) : 두 비트가 모두 1인 경우에만 1을 반환한다.
OR(|) : 두 비트 중 하나라도 1인 경우 1을 반환한다.
XOR(^) : 두 비트가 서로 다른 경우 1을 반환한다.
NOT(~) : 비트를 반전시켜서 0을 1로, 1을 0으로 변환한다.
왼쪽 시프트(<<) : 비트를 왼쪽으로 이동시킨다. 이동된 비트는 0으로 채운다.
오른쪽 시프트(>>) : 비트를 오른쪽으로 이동시킨다. 이동된 비트는 부호 비트와 같은 값으로 채운다.
부호 없는 오른쪽 시프트(>>>) : 비트를 오른쪽으로 이동시킨다. 이동된 비트는 0으로 채운다.


정규표현식 💬

정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다.

// 정규 표현식 리터럴
const re = /ab+c/

// RegExp 객체의 생성자 호출
const re = new RegExp('ab+c')

regex.test(str) : 문자열에 일치를 확인하고 true 또는 false를 반환한다.
str.match(regex) : 모든 일치를 담은 배열을 반환하거나 null을 반환한다.
str.matchAll(regex) : 캡처 그룹을 포함해서 모든 일치를 담은 반복기를 반환한다.
str.search(regex) : 첫번째로 매치되는 인덱스를 반환하거나 -1를 반환한다.
str.replace(regex, newStr) : 일치하는 부분을 탐색하고, 그 부분을 대체 문자열로 바꾼다.
str.replaceAll(regex, newStr) : 일치하는 부분을 모두 탐색하고, 모두 대체 문자열로 바꾼다.
split(separator, limit) : 정규 표현식 또는 문자열 리터럴을 사용해서 부분 문자열의 배열로 나눈다.


JavaScript

toString()
: 기수(radix)를 매개변수로 넣어서 10진수를 다른 진수(2, 8, 10, 16)로 변환할 수 있다.

obj.toString(radix)

padStart()
: 현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환한다. 채워넣기는 대상 문자열의 시작(좌측)부터 적용된다.

str.padStart(targetLength [, padString])

targetLength : 목표 문자열 길이
padString : 현재 문자열에 채워넣을 다른 문자열

padEnd()
: 현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환한다. 채워넣기는 대상 문자열의 끝(우측)부터 적용된다.

str.padEnd(targetLength [, padString])

targetLength : 목표 문자열 길이
padString : 현재 문자열에 채워넣을 다른 문자열

0개의 댓글