코딩테스트/문제풀이

[221019] KAKAO [1차] 비밀지도

Honey Badger 2022. 10. 19. 17:08

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

 

프로그래머스

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

programmers.co.kr

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

using namespace std;

vector<int> ChangeNum(int n, int max)
{
    vector<int> retval;
    while (n >= 2)
    {
        retval.push_back(n % 2);
        n /= 2;    
    }
    if (n > 0)
    {
        retval.push_back(1);
    }    
    while (retval.size() < max)
    {
        retval.push_back(0);
    }
    reverse(retval.begin(), retval.end());
    return retval;
}

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;
    string tempS;
    vector<vector<int>> map1;
    vector<vector<int>> map2;
    for (int i = 0; i < n; i++)
    {
        map1.push_back(ChangeNum(arr1[i], n));
        map2.push_back(ChangeNum(arr2[i], n));
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (map1[i][j] == 1 || map2[i][j] == 1)
            {
                tempS += '#';
                continue;
            }
            else
            {
                tempS += ' ';
                continue;
            }
        }
        answer.push_back(tempS);
        tempS = "";
    }
    return answer;
}

오랜만에 올리는 코테 문제풀이!!! 앞으론 매일 적어도 한문제는 풀자 ㅠㅠㅠㅠ...