프로그래머스/Level_1

[Level_1 / C++ / 카카오] [1차] 비밀지도

배발자 2022. 1. 23.
반응형

다음 그림을 봤을 때 or 연산자가 떠오른다. 그림 옆에 이진수로도 힌트를 주는거 같다. 

즉, '#' 문자는 '1' 을 나타내고 공백은 '0'을 나타낸다. 각 벡터의 정수값을 or 연산을 해주면 

맨 밑의 그림과 같이 표현할 수 있다. 

결과 그림과 같이 표현하기 위해서는 or연산을 통해 나온 결과값들은 각 행을 표현하는 정수값이며 그 정수값을

2로 계속 나눠주면서 나머지값이 1이라면 '#'를 붙여주고 아니라면 공백을 출력한다. 

#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;    
    for(int i=0; i<arr1.size();i++){
        int check = arr1[i] | arr2[i];         
        string s=""; 
        while(s.size()!=n){
            if(check%2==0)s.push_back(' '); 
            else s.push_back('#'); 
            check/=2;             
        }
        reverse(s.begin(),s.end()); 
        answer.push_back(s); 
    }    
    return answer;
}

 

 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr

 

반응형

댓글