ALGORITHM/프로그래머스 | 백준 | 삼성 | 카카오

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도

SZCODE 2020. 8. 25. 13:03

https://programmers.co.kr/learn/courses/30/lessons/17681

 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr

문제 설명 :

arr1과 arr2 배열의 값을 2진수로 각각 변환해주고, OR 연산을 해줍니다.
1001 = 9 일 경우 n자리만큼 빈 자리에는 0을 채워줘야하기 때문에 format 함수로 공백을 넣어줍니다.
1일 경우 #으로 바꾸고, 0일 경우 공백으로 출력해줍니다.
class Solution {
    public static String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
     
        for (int i = 0; i < n; i++) {
			String s = Integer.toBinaryString(arr1[i]|arr2[i]);//2진수로 변환, 비트 연산 OR
			s = String.format("%"+n+"s",s);//n자리만큼 공백으로 채워주기
			s = s.replace("1", "#");//1-> #
			s = s.replace("0", " ");//0->공백
			answer[i] = s;
		}
        return answer;
    }
    
    public static void main(String[] args) {
		int n = 6;
		int[] arr1 = {46, 33, 33 ,22, 31, 50};
		int[] arr2 = {27 ,56, 19, 14, 14, 10};
		solution(n,arr1,arr2);
	}
   
}