알고리즘/프로그래머스
[2018 KAKAO BLIND RECRUITMENT 1차] 비밀지도
동 코
2020. 5. 6. 18:06
문제풀이
비트마스크를 사용한다 두 벡터에 & 연산을 적용한 값을 저장한 벡터를 생성한후
앞에서부터 차례로 1<<(자리)한 mask 값과 & 연산하며 1여부를 확인하여 출력한다.
소스코드
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
vector<int> result;
for(int i=0;i<arr1.size();i++){
int temp = arr1[i]|arr2[i];
result.push_back(temp);
}
for(int i=0;i<result.size();i++){
string temp;
for(int mask=1<<(n-1);mask>0;mask= mask>>1){
// cout<<mask<<":"<<(result[i]&mask)<<endl;
if(result[i]&mask){
temp +="#";
}
else{
temp +=" ";
}
}
answer.push_back(temp);
// cout<<temp<<endl;
}
return answer;
}
|
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr