본문 바로가기

Programmers

[JAVA] Lv.1 [1차] 비밀지도

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제

arr1과 arr2에 주어진 각 정수 값들을 n비트 2진수로 변환

동일한 인덱스끼리 논리합 연산을 수행한 후 0은 " ", 1은 "#"으로 바꿔 문자열 배열 반환

 

 

풀이

1. arr1과 arr2의 같은 인덱스 값끼리 비교하여 논리합 연산 수행

2. 결과가 0이면 answer의 각 인덱스에 " ", 1이면 "#" 삽입

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        
        for(int i=0; i<n; i++) {
            for (int j=n-1; j>=0; j--) {
                if (j==n-1)
                    answer[i] = (arr1[i] % 2 + arr2[i] % 2 == 0) ? " " : "#";
                else
                    answer[i]= (arr1[i] % 2 + arr2[i] % 2 == 0) ? " "+answer[i] : "#"+answer[i];
                
                arr1[i] /= 2;
                arr2[i] /= 2;
                
            }
        }
        
        return answer;
    }
}