Binary Journey

[프로그래머스] 비밀지도 본문

프로그래머스

[프로그래머스] 비밀지도

binaryJournalist 2021. 9. 23. 20:56
반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

** Javascript

 

비트연산자를 이용했다.

그리고 padStart 를 이용하여 출력되지 않은 0들을 채워주었다.

 

function solution(n, arr1, arr2) {
    let answer = [];
    for (let i = 0; i < n; i++) {
        answer.push((arr1[i]|arr2[i]).toString(2).padStart(n, '0').replace(/[1]/g, "#").replace(/[0]/g, " "));
    }
    return answer;
}

 

 

** Java

 

Java에는 따로 padStart 가 없어서 구글링하여 찾아보았다.

여러 추천 방법들이 있었는데 String.format 을 쓰는 게 가장 나을 듯하다.

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        for (int i = 0; i < n; i++) {
            answer[i] = String.format("%" + n + "s", Integer.toBinaryString(arr1[i] | arr2[i])).replaceAll("1", "#").replaceAll("0", " ");
        }
        return answer;
    }
}

 

참고: https://www.baeldung.com/java-pad-string

 

 

** Python

 

def solution(n, arr1, arr2):
    answer = [""] * n
    for i in range(n):
        # answer[i] = str(bin(arr1[i]|arr2[i]))[2:].rjust(n,'0').replace('1','#').replace('0',' ')
        answer[i] = str(bin(arr1[i]|arr2[i]))[2:].zfill(n).replace('1','#').replace('0',' ')
    return answer

 

 

숫자의 경우 앞에 0을 채워줘야 하는 경우가 생기는 데 python 의 경우 rjust 와 zfill 을 사용할 수 있다.

 

rjust 는 채우고 싶은 string 을 원하는 대로 지정할 수 있고

zfill 은 말 그대로 fill zero여서 총 글자 수만 지정해주면 된다.

 

참고: https://kkamikoon.tistory.com/136

 

[Python] 스트링 앞에 0 채우는 방법(zfill, rjust)

파이썬에서 숫자를 출력하고자 하는데, 앞에 0을 붙여주고 싶을 때 해결 방법을 찾아보았습니다. 이때 사용할 수 있는 함수가 zfill()이라는 함수와 rjust()라는 함수가 있는데, 함수를 다음과 같이

kkamikoon.tistory.com

 

반응형