๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - [1์ฐจ] ๋น„๋ฐ€ ์ง€๋„(Level 1)

by dkswnkk 2022. 4. 13.

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [1์ฐจ] ๋น„๋ฐ€์ง€๋„

๋น„๋ฐ€์ง€๋„ ๋„ค์˜ค๋Š” ํ‰์†Œ ํ”„๋กœ๋„๊ฐ€ ๋น„์ƒ๊ธˆ์„ ์ˆจ๊ฒจ๋†“๋Š” ์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ค„ ๋น„๋ฐ€์ง€๋„๋ฅผ ์†์— ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋น„๋ฐ€์ง€๋„๋Š” ์ˆซ์ž๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์–ด ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค

programmers.co.kr

 

์ฝ”๋“œ

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

char map[17][17];

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;
    for(int i=0; i<arr1.size(); i++){
        int cnt = n;
        int num = arr1[i];
        string bit = "";
        while(cnt--){
            bit+=(num%2)+'0';
            num/=2;
        }
        reverse(bit.begin(),bit.end());
        for(int k=0; k<n; k++){
            if(bit[k]=='0'&&map[i][k]!='#') map[i][k] = ' ';
            else if(bit[k]=='1') map[i][k] = '#';
        }
    }
    for(int i=0; i<arr2.size(); i++){
        int cnt = n;
        int num = arr2[i];
        string bit = "";
        while(cnt--){
            bit+=(num%2)+'0';
            num/=2;
        }
        reverse(bit.begin(),bit.end());
        for(int k=0; k<n; k++){
            if(bit[k]=='0'&&map[i][k]!='#') map[i][k] = ' ';
            else if(bit[k]=='1') map[i][k] = '#';
        }
    }
    
    for(int i=0; i<n; i++){
        string inp ="";
        for(int k=0; k<n; k++){
            inp+=map[i][k];
        }
        answer.push_back(inp);
    }
    return answer;
}

 

ํ’€์ด(20๋ถ„)

์ด์ง„๋ฒ•์„ ๊ตฌํ•œ ํ›„์— ๊ฐ ์ด์ง„์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ 1์ด๋ฉด '#' 0์ด๋ฉด ' '์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด ๊ฐ€๋ฉด์„œ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด ๋ฌธ์ œ๋Š” ์ด์ง„์ˆ˜์˜ ๊ธธ์ด๊ฐ€ n์œผ๋กœ ์ง€์ •๋˜์–ด์„œ ์ฃผ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด์ง„์ˆ˜๋ฅผ ๊ตฌํ•  ๋•Œ n==0์ด ๋  ๋•Œ๊นŒ์ง€ ๊ตฌํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ n๋งŒํผ ๋‚˜๋ˆ„์–ด๊ฐ€๋ฉด์„œ ๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋Œ“๊ธ€