본문 바로가기

Algorithm

2018 KAKAO BLIND RECRUITMENT[1차] 비밀지도

반응형

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

 

프로그래머스

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

programmers.co.kr

 

간단한 문자열 처리 문제.

2진법 계산 과정만 조금 생각해내면 된다.

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

using namespace std;

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    
    vector<string> answer;
    
    for(int i = 0; i < n; i++)
    {
        int N = arr1[i];
        string str1 = "";
        
        while(N >= 1)
        {
            if(N % 2 == 1)
            {
                str1 += '#';
            }
            else
            {
                str1 += ' ';
            }
            
            N /= 2;
        }
        
        while(str1.size() < n)
        {    
            str1 += ' ';
        }
        reverse(str1.begin(),str1.end());
        
        
        N = arr2[i];
        string str2 = "";
        
        while(N >= 1)
        {
            if(N % 2 == 1)
            {
                str2 += '#';
            }
            else
            {
                str2 += ' ';
            }
            
            N /= 2;
        }
        
        while(str2.size() < n)
        {    
            str2 += ' ';
        }
        
        reverse(str2.begin(),str2.end());
        string str3 ="";
        for(int j = 0; j < n; j++)
        {
            if(str1[j] == ' ' && str2[j] == ' ')
            {
                str3 += ' ';
            }
            else
            {
                str3 += '#';
            }
        }
        answer.push_back(str3);
    }
    
    
    return answer;
}
반응형