728x90

문제를 보는 순간 비트연산이 떠올랐다. 내가 문제를 많이 안풀어봐서 그런가 카카오 문제가 뭔가 독특한거 같다.
비트연산은 해본 경험이 있지만 이를 문자열로 변환하거나 출력해본적이 없었다. 검색의 도움을 받아 "bitset" 이라는 헤더가 있다는 것을 알게 되었고 bitset<bit>(숫자) 형식으로 사용하고 to_string을 이용하여 문자열로 변환할 수 있었다.
풀이는 다음과 같다.
#include <string>
#include<vector>
#include<bitset>
using namespace std;
vector<string> solution(int n, vector<int> map1, vector<int> map2) {
vector<string> answer;
vector<int> result(n, 0);
for(int i = 0; i < result.size(); i++)
{
result[i] = map1[i]|map2[i];
}
for(int i = 0; i < result.size(); i++)
{
string bitString = bitset<16>(result[i]).to_string();
string temp = "";
for(int j = 16 - n; j < 16; j++)
{
if(bitString[j] == '1')
{
temp.push_back('#');
}
else
{
temp.push_back(' ');
}
}
answer.push_back(temp);
}
return answer;
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
2019 KAKAO BLIND RECRUITMENT (오픈채팅방) (0) | 2023.04.15 |
---|---|
2021 Dev-Matching: 웹 백엔드 개발자(상반기)(행렬 테두리 회전하기) (0) | 2022.12.24 |
2021 Dev-Matching: 웹 백엔드 개발자(상반기)(로또의 최고 순위와 최저 순위) (0) | 2022.12.24 |
2021 카카오 채용연계형 인턴십 (거리두기 확인하기) (0) | 2022.11.22 |
2021 카카오 채용연계형 인턴십 (숫자 문자열 영단어) (0) | 2022.11.22 |