밍래그로프 2020. 12. 28. 11:28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
   
    public String[] solution(int n, int[] arr1, int[] arr2) {
        int arrLength = arr1.length;
        String[] answer = new String[arrLength];
        int[] arrBitSum = new int[arrLength];
        for(int i = 0; i<arrLength; i++){
            answer[i] = Integer.toBinaryString(arr1[i] | arr2[i] ); 
            answer[i] = String.format("%" + arrLength + "s",answer[i]); 
            answer[i] = answer[i].replace("1","#");
            answer[i] = answer[i].replace("0"," ");
        }
        return answer;
    }
    
}
cs

 

재귀를 이용한 풀이

솔직히 혼자 생각하는건 힘들다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {
    public String makeSharp(int n , int m){
        if(n==0){
            if(m>0){
                String s="";
                for(int i =0; i<m; i++){
                    s+=" ";
                }
                return s;
            }else{
                return "";
            }
            
        }
        if(n%2 == 0){
            makeSharp(n/2,m-1+" ";
        }else{
            makeSharp(n/2,m-1+"#";
        }
    }
    
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        int secretMap = new int[n];
        for(int i =0;i<n;i++){
            secretMap[i] =arr1[i]|arr2[i];
            answer[i] = makeSharp(secretMap[i],n);
        }
        return answer;
    }
}
cs