문제
풀이
#include <string>
#include <vector>
#include <bitset>
using namespace std;
string to_binary(int num, int n) {
string s = "";
for(int i=0; i<n; i++){
num % 2 == 0? s.insert(0," ") : s.insert(0, "#");
num >>= 1; // /=2
}
return s;
}
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
for(int i=0; i<n; i++){
answer.push_back(to_binary(arr1[i] | arr2[i], n));
}
return answer;
}
++ 추가
Java풀이
https://strong-2-min.tistory.com/295
다른 사람 풀이
#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++){
arr1[i] = arr1[i]|arr2[i];
string ans = "";
for(int j = 0; j<n; j++){
if(arr1[i] % 2 == 0) ans = " " + ans;
else ans = "#" + ans;
arr1[i] = arr1[i] >> 1;
}
answer.push_back(ans);
}
return answer;
}
단순히 문자열이기 때문에, insert(index, "문자")를 쓰지 않고도 산술 연산자 +를 사용하여 같은 결과를 얻을 수 있었다.
'Algorithm > 카카오기출' 카테고리의 다른 글
[프로그래머스]신고 결과 받기 / istringstream (0) | 2022.01.24 |
---|---|
[프로그래머스]다트게임 / stringstream (0) | 2022.01.19 |
[프로그래머스] 실패율 (0) | 2022.01.14 |
[프로그래머스]크레인 인형뽑기 게임 (0) | 2022.01.12 |
[프로그래머스] 키패드 누르기 (0) | 2022.01.11 |