본문 바로가기

Programmers/Level1

[1차] 비밀지도

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
class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = {};
 
        StringBuilder sb = new StringBuilder();
        int i, j, num;
 
        answer = new String[n];
 
        for (i = 0; i < n; i++) {
            num = arr1[i] | arr2[i];
 
            while (num > 0) {
                if (num % 2 == 1)
                    sb.append("#");
                else
                    sb.append(" ");
                num /= 2;
            }
            for (j = sb.length(); j < n; j++)
                sb.append(" ");
            sb.reverse();
            answer[i] = sb.toString();
            sb.delete(0, sb.length());
        }
        return answer;
    }
}
cs

num = arr1[i] | arr2[i]을 통한 or 연산이 핵심이다.

배열을 굳이 뒤집을 필요 없이 answer[i] = str + answer[i] 처럼 한 번에 할 수 있다.

'Programmers > Level1' 카테고리의 다른 글

3진법 뒤집기  (0) 2021.07.01
두 개 뽑아서 더하기  (0) 2021.06.30
같은 숫자는 싫어  (0) 2021.06.29
예산  (0) 2021.06.29
소수 찾기  (0) 2021.06.29