Q. [1차] 비밀지도
A.
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
//지도를 저장할 문자열 배열 생성(지도 크기 n*n 정사각형)
String[] answer = new String[n];
//각 행에 대해 반복
//arr1과 arr2에 대해 OR 연산 수행
//OR 연산 = 두 숫자 중 하나라도 1이면 1
for(int i = 0; i < n; i++){
int map = arr1[i] | arr2[i];
//행을 저장할 문자열
String result = "";
//컴퓨터상으로는 2진 계산, 보는건 10진법 -> 계산이 되도 10진법이나 마찬가지
//OR 연산결과를 2진수로 바꾸기
for(int j = 0; j < n; j++){
int a = map % 2;
//나머지가 1이면 #, 0이면 공백
if(a == 1){
result = "#" + result;
} else {
result = " " + result;
}
//다음 자리수로 넘어가기 위해 2로 나눠줌
map = map / 2;
}
//계산된 행의 문자열을 결과 배열에 저장
answer[i] = result;
}
return answer;
}
}
'알고리즘, 코딩테스트 > 알고리즘 풀이' 카테고리의 다른 글
[프로그래머스/ 2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어 (1) | 2025.02.28 |
---|---|
[프로그래머스/ 코딩테스트 완전탐색] 모의고사 (0) | 2025.02.26 |
[프로그래머스/ 코딩테스트 연습문제] 크기가 작은 부분 문자열 (0) | 2024.12.03 |
[프로그래머스/ 코딩테스트 연습문제] 삼총사 (0) | 2024.11.26 |
[프로그래머스/ 코딩테스트 연습문제] 이상한 문자 만들기 (0) | 2024.11.26 |