티스토리 뷰

비밀지도


입출력 예제

n : 5

arr1 : [9,20,28,18,11]

arr2 : [30,1,21,17,28]

return : ["#####","# # #","### #","#  ##",'#####"]


문제해설

이번 문제를 풀려면 비트연산인 | 연산을 이용하면 바로 내가 원하는 값이 나오고 그것을 2진수로 바꾸는 과정을 이용해서 해결할 수 있습니다.

저는 string에 5개의 공간을 공백으로 만들고 2로 나누면서 나머지가 존재하면 뒤에서부터 #을 채우는 방식으로 2진수로 만들었습니다.


소스코드

#include <string>
#include <vector>

using namespace std;

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
		
	vector<string> answer(n);
	for (int i = 0; i < n; i++) {
		int k = arr1[i] | arr2[i];
		answer[i].assign(" ",n);
		for (int j = n - 1; j >= 0; j--) {
			if (k % 2 == 0)
				answer[i][j] = ' ';
			else
				answer[i][j] = '#';
			k /= 2;
			
		}
	}
	return answer;
}


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함