🖇️ 문제 링크
코딩테스트 연습 - [1차] 비밀지도
네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다.


📝 문제 분석
두 장의 지도를 겹칠 때, 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽입니다.
어느 하나라도 참이라면 되기 때문에 비트마스킹 OR연산을 사용합니다.
출력 길이를 맞춰주기 위해 String.format
을 사용했습니다
⌨️ 코드
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] ans = new String[n];
for(int i = 0; i < n; i++) {
int n1 = arr1[i];
int n2 = arr2[i];
String s = Integer.toBinaryString(n1 | n2).replace("1", "#").replace("0", " ");
ans[i] = String.format("%" + n + "s", s);
}
return ans;
}
}
Uploaded by Notion2Tistory v1.1.0