티스토리 뷰
💡 나의 풀이
10진수를 2진수로 변환하는 함수인 Integer.toBinaryString(num)과 replace 함수를 사용하여 풀이
비트연산자 "|"를 사용하여 먼저 수행 후 "#" 또는 " "으로 대체하여 출력
| -> 둘 중 하나라도 1이면 1, 아니면 0 (OR)
& -> 둘 중 모두 1이면 1, 아니면 0 (AND)
^ -> 두 비트가 다를 때 1 출력 (XOR)
~ -> 비트 전환 연산자 / 1이면 0, 0이면 1로 전환
import java.util.*;
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]);
//비트연산 : 7 | 2 이면 00111 | 00001 일 때 하나라도 1이면 1, 아니면 0
}
for(int i = 0; i < n; i++){
answer[i] = String.format("%"+n+"s", answer[i]); //n개의 자릿수만큼 문자열 담기
answer[i] = answer[i].replace("1", "#"); //answer[i]가 1이면 #으로 대체
answer[i] = answer[i].replace("0", " "); //answer[i]가 0이면 " "으로 대체
}
return answer;
}
}
'👩🏻💻 기술면접 > 알고리즘' 카테고리의 다른 글
[프로그래머스] JAVA K번째 수 Level 1. (0) | 2020.05.16 |
---|---|
[프로그래머스] JAVA 완주하지 못한 선수 Level 1 (0) | 2020.04.15 |
[프로그래머스] JAVA 행렬의 덧셈 Level 1. (0) | 2020.04.15 |
[프로그래머스] JAVA 소수 찾기 Level 1 (3) | 2020.04.07 |
[프로그래머스] Java 문자열 내 마음대로 정렬하기 Level 1 (0) | 2020.04.03 |
댓글