-
프로그래머스 비밀지도 C++프로그래머스(Programmers) 2022. 3. 13. 11:46반응형
=> 단순구현문제였습니다.
=> 10진수로 주어진 숫자를 2진수 숫자로 변환하여 string형 vector 변수로 표현하여야 합니다.
string Binary(int num , int digit) // 십진수, 자릿수 { string s = bitset<16>(num).to_string(); //< > 안에 있는 숫자는 몇자리까지 표현할지를 정한다. string value = s.substr(16-digit); // substr을 통해 필요한 숫자만큼만 쓴다. return value; }
=> 위는 10진수를 2진수로 표현하는 방법입니다. 필요한 자릿수만큼 사용하기 위해 substr 함수를 이용하였습니다.
=> 두 string형 vector map1 과 map2를 비교하여 둘중에 하나라도 벽이 있으면 '#'을 넣어주고, 아닐 경우 ' '을 넣어주어야 합니다.
#include <string> #include <vector> #include <bitset> #include <iostream> using namespace std; string Binary(int num , int digit) // 십진수, 자릿수 { string s = bitset<16>(num).to_string(); string value = s.substr(16-digit); return value; } vector<string> solution(int n, vector<int> arr1, vector<int> arr2) { vector<string> finalMap; vector<string> map1; //첫번째 map vector<string> map2; //두번째 map for(auto k : arr1) { string s = Binary(k, n); map1.push_back(s); } for(auto p : arr2) { string s = Binary(p, n); map2.push_back(s); } string fMapEle ="";//finalMap에 넣을 원소 for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { if((map1[i][j] == '1') || (map2[i][j]=='1')) // 둘중에 하나라도 벽이 있으면 fMapEle.push_back('#'); else fMapEle.push_back(' '); //둘다 벽이 없으면 } finalMap.push_back(fMapEle); fMapEle =""; //원소초기화 } return finalMap; }
반응형'프로그래머스(Programmers)' 카테고리의 다른 글
프로그래머스 n^2 배열 자르기 C++ (0) 2022.03.21 프로그래머스 가운데 글자 가져오기 (0) 2022.03.20 프로그래머스 같은 숫자는 싫어 C++ (0) 2022.03.12 프로그래머스 구명보트 C++ (0) 2022.03.11 프로그래머스 후보키 C++ (0) 2022.03.02