-
728x90
- 01001(2) 과 11110(2) 이 만나서, 11111(2)이 되는 것이 비트 OR연산과 같다.
- 비트 연산은 반드시 정수값으로 해야 한다.
비트 OR(|) 연산
: 둘 중에 하나라도 1이 있으면 1, 모두 0이면 0- 비트 계산을 마친 후, 정수 값을 String값으로 형 변환을 해준다.
answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
- 1은 #으로 0은 공백으로 바꾼다.
- 단, 0001처럼 앞에 0이 붙는 경우 0이 없고 1로만 저장이 되어있어 자릿수가 맞지 않으므로 따로 앞에 0(또는 공백)을 붙여주어야 한다.
ㄴ 나는 이미 #과 공백으로 바꾼 후여서, 공백을 추가해주었다.
// 자릿수 맞추기
while(answer[i].length() != n)
answer[i] = " " + answer[i];- 자릿수 맞추는 과정을 다음과 같이 한번에 수행해도 된다 ^0^ => String.format이용
answer[i] = String.format("%" + n + "s", Integer.toBinaryString(arr1[i] | arr2[i]));
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]); answer[i] = answer[i].replace('1', '#'); answer[i] = answer[i].replace('0', ' '); // 자릿수 맞추기 while(answer[i].length() != n) answer[i] = " " + answer[i]; } return answer; } }
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level1] 프로그래머스 - 다트 게임(JAVA) (0) 2021.08.30 [level1] 프로그래머스 - 가운데 글자 가져오기(JAVA) (0) 2021.08.29 [level1] 프로그래머스 - 2016년(JAVA) (0) 2021.08.29 [level1] 프로그래머스 - 부족한 금액 계산하기(JAVA) (1) 2021.08.27 [level1] 프로그래머스 - 이름이 있는 동물의 아이디(MySQL) (0) 2021.08.27 댓글