728x90
# 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/17681
# 문제 요약
두개의 지도(1차원 배열)에 공백(0)과 벽(1)이 있다.
그 두개의 지도를 겹친 지도를 공백은 ' '(공백)로 벽은 #으로 return 하는 문제
# 풀이
지도의 공백과 벽을 0과 1로 보고 있기 때문에, 이진수를 사용한 것을 알 수 있다.
그렇다면, 두개의 지도를 겹쳤을때 이진수를 OR로 연산하여 결과를 도출한다는 것을 문제 예시를 통해 확인할 수 있다.
고로, OR 연산 후 1은 #으로 0은 ' '(공백)으로 치환하는 과정을 거쳐 결과를 도출해낸다.
# 코드
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]);
// int ansLen = answer[i].length();
// for(int j=ansLen; j<n; j++){
// answer[i]="0"+answer[i];
// }
// answer[i] = answer[i].replace("1", "#").replace("0", " ");
// }
for(int i=0; i<n; i++){
answer[i] = String.format("%"+n+"s", Integer.toBinaryString(arr1[i] | arr2[i]))
.replace("1", "#").replace("0", " ");
}
return answer;
}
}
728x90
'algorithm > programmers' 카테고리의 다른 글
[programmers] 신규 아이디 추천(Java)_2021 KAKAO BLIND RECRUITMENT (1) | 2022.09.29 |
---|---|
[programmers] 신고 결과 받기(Java)_2022 KAKAO BLIND RECRUITMENT (0) | 2022.09.29 |
[programmers] 두 개 뽑아서 더하기(Java)_월간 코드 챌린지 시즌1 (0) | 2022.06.28 |
[programmers] 크레인 인형뽑기 게임(Java)_2019 카카오 개발자 겨울 인턴십 (0) | 2022.06.26 |
[Programmers] 소수만들기 (Java)_Summer/Winter Coding(~2018) (0) | 2022.06.25 |