728x90
비밀지도
https://school.programmers.co.kr/learn/courses/30/lessons/17681



풀이
`map = arr1[i] | arr2[i]`: 둘 중 하나라도 1이면 1
-> ex. arr1[i] = 9(10진수) = 1001(2진수) 컴퓨터 안에서는 항상 이진수로 저장
`Integer.toBinaryString(map)`으로 이진수 변환하면 앞의 0 자동으로 빠짐
-> `String.format("%" + n + "s", binary)`로 공백 채우기
(길이가 n이 될 때까지 왼쪽에 공백 채워서 문자열 맞추기)
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++) {
int map = arr1[i] | arr2[i];
String binary = Integer.toBinaryString(map);
binary = String.format("%" + n + "s", binary);
binary = binary.replace('1', '#')
.replace('0', ' ');
answer[i] = binary;
}
return answer;
}
}728x90
반응형
'✏️ > Programmers' 카테고리의 다른 글
| [프로그래머스/Lv.1] 개인정보 수집 유효기간 (Java) (0) | 2026.02.12 |
|---|---|
| [프로그래머스/Lv.1] 성격 유형 검사하기 (Java) (0) | 2026.02.12 |
| [프로그래머스/Lv.1] 크레인 인형뽑기 (Java) (0) | 2026.02.08 |
| [프로그래머스/Lv.1] 키패드 누르기 (Java) (0) | 2026.02.04 |
| [프로그래머스/Lv.1] 문자열 내 마음대로 정렬하기 (Java) (0) | 2026.02.03 |