[프로그래머스]비밀지도(C++)
🤔문제 해석
크기가 n인 벡터 2개가 입력된다.
각각의 벡터의 값들을 n자리 수의 2진수로 바꾸어 2개의 n * n배열들로 만들었을 때 같은 위치에 있는 값이 공백일 때만 공백이고 나머지 경우에는 #인 2차원 벡터를 출력한다.
😏풀이
✔비트연산자 사용하기!!
arr1과 arr2의 값들을 비트연산자를 활용하여 저장한 뒤
그 값을 2진법으로 나타내어 0일 때는 공백, 1일 때는 #으로 temp(string)에 저장한다.
마지막엔 reverse함수를 사용하여 temp 뒤집어주기!
💻코드
#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<n;i++){
string temp="";
arr1[i]=arr1[i]|arr2[i];
while(temp.size()!=n){
if(arr1[i]%2==0){
temp+=' ';
}
else{
temp+='#';
}
arr1[i]/=2;
}
reverse(temp.begin(),temp.end());
answer.push_back(temp);
}
return answer;
}
Author And Source
이 문제에 관하여([프로그래머스]비밀지도(C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yr4528/비밀지도저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)