카카오 코딩테스트 - 비밀지도

greenTea·2023년 3월 24일
0
class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        
        
        for (int i=0;i<arr1.length;i++) {
            String firstLine = Integer.toBinaryString(arr1[i]);
            String secondLine = Integer.toBinaryString(arr2[i]);
            while (firstLine.length()< n)  {
                firstLine = "0"+firstLine;
            }
            while (secondLine.length()< n)  {
                secondLine = "0"+secondLine;
            }
        
            StringBuilder sb = new StringBuilder();
            for (int j=0;j<n;j++) {
                if (firstLine.charAt(j) == '1' || secondLine.charAt(j) == '1') {
                    sb.append("#");
                } else {
                    sb.append(" ");
                }
            }
            answer[i] = sb.toString();
        }
        
        return answer;
    }
}

효율성은 생각하지 않고 일단 풀어보자는 마인드로 풀었다. 풀고 나서 다른 분들의 풀이를 보니 비트연산으로 코드라인을 나에 1/3가까이 줄였다.

출처 : 카카오 , 프로그래머스 알고리즘

profile
greenTea입니다.

0개의 댓글