말하는 컴공감자의 텃밭

프로그래머스 [1차] 비밀지도 <1점> - 자바(java) 본문

알고리즘/Programmers - Java

프로그래머스 [1차] 비밀지도 <1점> - 자바(java)

현콩 2023. 7. 5. 16:14
728x90

메?

두 지도를 겹쳐서 지도를 완성하는게 목표

각 지점은 2진수로 변환하면 벽과 공백으로 나타남.

겹치려면 OR 연산 이용.

 

고려해야할것 딱히없음.

2진수 연산 후 ### 입력시 왼쪽에서 입력해야한다는점?

append가 아니라 insert 사용.

 

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
class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        int[] num = new int[n];
 
        for (int i = 0; i < n; i++) {
            num[i] = arr1[i] | arr2[i]; // 2진수 OR 연산
        }
 
        for (int i = 0; i < n; i++) {
            StringBuilder row = new StringBuilder();
 
            for (int j = 0; j < n; j++) {
                if (num[i] % 2 == 1) {  
                    // 2진수는 오른쪽에서 왼쪽으로 확인하므로 insert (0, 사용
                    row.insert(0"#"); // 숫자 1이면 #
                } else {
                    row.insert(0" "); // 숫자 0이면 공백.
                }
                num[i] /= 2;
            }
 
            answer[i] = row.toString();
        }
 
        return answer;
    }
}
 
cs
728x90
Comments