프로그래머스/Level_1

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

배발자 2022. 1. 23.

목차

    반응형

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

    다음 그림을 봤을 때 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

     

    반응형