반응형
https://programmers.co.kr/learn/courses/30/lessons/17681
[카카오 2018 코딩테스트 1차] 비밀지도
#include <string>
#include <vector>
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 resultN="";
for(int j=n-1;j>=0;j--) {
unsigned int arr1Result=arr1[i] >> j & 1;
unsigned int arr2Result=arr2[i] >> j & 1;
resultN+=to_string(arr1Result|arr2Result);
}
for(int si=0;si<resultN.length();si++) {
if(resultN[si]=='1') {
resultN[si]='#';
}
else if(resultN[si]=='0') {
resultN[si]=' ';
}
}
answer.push_back(resultN);
}
return answer;
}
비밀지도에서 '#'과 ' '(공백)을 표시하는 방법은
다름 아닌 2진수 표기법이다.
그러므로 비트 연산자를 사용하면
더욱 빠르고 간편하게 계산할 수 있다.
반응형
'개발 > 알고리즘 & 자료구조' 카테고리의 다른 글
[프로그래머스] 완주하지 못한 선수 (C++) (4) | 2021.09.01 |
---|---|
[2020 카카오 블라인드 채용][프로그래머스] 괄호 변환 (C++) (2) | 2021.08.31 |
[카카오 2019 BLIND RECRUITMENT] 실패율 (프로그래머스) (0) | 2021.08.28 |
[카카오][2021 인턴십] 숫자 문자열과 영단어 (2) | 2021.08.26 |
[2020 카카오 인턴쉽][알고리즘][프로그래머스] 키패드 누르기 (2) | 2021.08.23 |