Problem
주어지는 두개의 지도를 겹친 결과를 출력하는 문제입니다.
Solution
그림만 봐도 알수 있듯이 겹치는 부분은 # 겹치지 않은 부분은 빈칸으로 나옵니다.
친절하게 비트로 풀라고 안내까지 해주고 있으니 Integer.toBinaryString
함수를 사용하여 계산을 해줍니다.
1 과 0 으로 이루어진 String
을 replaceAll
로 전부 바꿔주면 됩니다.
한 가지 주의할 점이 하나 있습니다.
1111(2)
처럼 자릿수가 작은 글자는 n
이 5
일때 01111
로 바꿔주어야 합니다.
여기서는 자리수를 맞춰주는 String.format
함수를 사용하여 n
자리만큼 공백으로 채워줍니다.
Java Code
class Solution {
static public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for (int i=0; i<n; i++) {
String temp = Integer.toBinaryString(arr1[i] | arr2[i]);
temp = String.format("%" + n + "s", temp);
temp = temp.replaceAll("1", "#");
temp = temp.replaceAll("0", " ");
answer[i] = temp;
}
return answer;
}
}
'알고리즘 문제 > Programmers' 카테고리의 다른 글
[프로그래머스] 체육복 (Java) (1) | 2020.03.27 |
---|---|
[프로그래머스] 위장 (Java) (0) | 2019.11.26 |
[프로그래머스] 전화번호 목록 (Java) (0) | 2019.11.26 |
[프로그래머스] 완주하지 못한 선수 (Java) (0) | 2019.11.26 |
2018 KAKAO BLIND 캐시 (Java) (0) | 2019.09.06 |