빙응의 공부 블로그

[Programmers]Lv.1 비밀지도 본문

Argorithm

[Programmers]Lv.1 비밀지도

빙응이 2024. 1. 3. 20:58


📝풀이

제일 중요한 것은 비트 계산을 할 수 있는가? 이다.

 

            int combined = arr1[i] | arr2[i];
            
            answer[i] = Integer.toBinaryString(combined);

위의 첫번째 라인은 비트의 OR 계산이다.

세번째 라인은 10진수를 비트로 바꾸는 것이다. 

이것만 알면 쉽게 푸는게 가능하다. 

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];

        for (int i = 0; i < n; i++) {
            int combined = arr1[i] | arr2[i];
            
            answer[i] = Integer.toBinaryString(combined);
            
            while (answer[i].length() < n) {
                answer[i] = "0" + answer[i];
            }
            
            answer[i] = answer[i].replaceAll("1", "#");
            answer[i] = answer[i].replaceAll("0", " ");
        }

        return answer;
    }
}