문제풀이/코딩테스트
프로그래머스 [1차] 비밀지도 [Java]
gyungmean
2022. 3. 16. 14:34
문제출처
https://programmers.co.kr/learn/courses/30/lessons/17681
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i = 0; i < n; i++){
answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
while(answer[i].length() < n){
answer[i] = "0" + answer[i];
}
answer[i] = answer[i].replaceAll("1", "#");
answer[i] = answer[i].replaceAll("0", " ");
}
return answer;
}
}
arr1과 arr2를 2진수로 변환하고 OR연산 후 1은 #으로 0은 공백으로 바꿔주는 단순한 알고리즘이었다.
Integer.toBinaryString이 |나 &연산이 되는지 몰랐는데 하나 배웠다.
카카오 공식해설(?)은 이쪽
https://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/
역시나 여기서 중요한 것은 비트연산이라고 강조하고 있다.