일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 2018 카카오 공채
- 2018 카카오
- gcp
- 2018 KAKAO BLIND RECRUITMENT 1차
- bfs
- set
- 부스트코스
- gradle
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 자바
- 알고리즘
- 카카오
- Baekjoon
- 젠킨스
- dfs
- 프로그래머스
- 카카오 공채
- map
- Java
- 2019 KAKAO BLIND RECRUITMENT
- 2018 KAKAO BLIND RECRUITMENT
- 2019 카카오 공채
- 삼성 SW 기출문제
- 비트마스크
- 2020 카카오 공채
- CS 스터디
- c++
- 2020 KAKAO BLIND RECRUITMENT
- 백준
- 삼성 SW 역량테스트
Archives
- Today
- Total
아무코딩
[2018 KAKAO BLIND RECRUITMENT 1차] 비밀지도 본문
문제풀이
비트마스크를 사용한다 두 벡터에 & 연산을 적용한 값을 저장한 벡터를 생성한후
앞에서부터 차례로 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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[2018 KAKAO BLIND RECRUITMENT 1차] 프렌즈 4 블록 (0) | 2020.05.06 |
---|---|
[2018 KAKAO BLIND RECRUITMENT 1차] 캐시 (0) | 2020.05.06 |
[2018 KAKAO BLIND RECRUITMENT 1차] 다트게임 (0) | 2020.05.05 |
[2018 KAKAO BLIND RECRUITMENT 1차] 셔틀버스 (0) | 2020.05.04 |
[프로그래머스 43236] 징검다리 (0) | 2020.05.02 |
Comments