๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm

[Algorithm/Java][ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ๋น„๋ฐ€์ง€๋„

๋ฐ˜์‘ํ˜•

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ]๋น„๋ฐ€์ง€๋„

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

๋ฌธ์ œ์ ‘๊ทผ

์ž…๋ ฅ์œผ๋กœ ์ •์ˆ˜๋กœ ๋œ ๋ฐฐ์—ด 2๊ฐœ๋ฅผ ์ฃผ๊ณ , ์ด ์ •์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ์„œ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ธ๊ณณ์ด๋ฉด, ๋ฒฝ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
์ฒ˜์Œ์—๋Š” if๋ฌธ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐ”๊พธ๊ณ  ๋น„๊ตํ•ด๋ณผ ์ƒ๊ฐ์ด์˜€์ง€๋งŒ, ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ  ์ฝ”๋“œ๋„ ๋”๋Ÿฌ์›Œ์„œ ๋ฌธ์ œํ•ด์„ค์„ ๋ณด๋‹ˆ ๋น„ํŠธ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜๋ผ๋Š” ๊ฒƒ์ด์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ธ ๊ณณ์ด ๋ฒฝ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— OR์—ฐ์‚ฐ์„ ์ด์šฉํ•˜๊ณ  ์ž๋ฐ”์˜ ๋น„ํŠธ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค.

Code

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        for(int i = 0; i<n; i++){
            String map = Integer.toBinaryString(arr1[i] | arr2[i]);
            while(map.length()!=n){
                map = "0"+map;
            }
            map = map.replace('0',' ');
            answer[i] =map.replace('1','#');
        }
        return answer;
    }
}

์–ด๋ ค์› ๋˜ ์ / ๋ฐฐ์šด ์ 

Integer.toBinaryString ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ •์ˆ˜๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ด์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ๋น„ํŠธ์—ฐ์‚ฐ๋„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ–ˆ๋‹ค.
๋ง‰ํ˜”๋˜ ์ ์€ 2๋ฒˆ์งธ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์—์„œ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์˜จ๊ฒƒ์ด๋‹ค. ์ž์„ธํžˆ๋ณด๋‹ˆ๊นŒ ์ด์ง„์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ n์ด์—ฌ์•ผ ํ•˜๋Š”๋ฐ ์ž‘์€ ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ์•ž์— 0์ด ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ while๋ฌธ์œผ๋กœ ์ž๋ฆฟ์ˆ˜(๊ธธ์ด)๊ฐ€ n์ผ๋•Œ๊นŒ์ง€ ์™ผ์ชฝ์— 0์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

๋ฐ˜์‘ํ˜•