코딩테스트/카카오

카카오 1차 코딩테스트 1번 비밀지도 문제풀이

글로벌디노 2018. 5. 22. 14:11

카카오 1차 코딩 테스트 1번 문제풀이

문제 및 해설 바로가기


1. 비밀 지도(난이도: 하)

입력)

5

9 20 28 18 11

30 1 21 17 28


출력)

#####

# # # 

### #

# ## 

#####


입력)

6

46 33 33 22 31 50

27 56 19 14 14 10


출력)

######

###  #

##  ##

 #### 

 #####

### # 


C++ 소스코드

#include <iostream>
using namespace std;

int* CreateIntArray(int n);
void Convert(char *p, int num, int n);

int main()
{
	int n;
	cin >> n;
	int *pArr1 = CreateIntArray(n);
	int *pArr2 = CreateIntArray(n);

	for (int i = 0; i < n; i++)
	{
		pArr1[i] = pArr1[i] | pArr2[i];
	}

	char *pChArr = new char[n + 1];
	pChArr[n] = '\0';
	for (int i = 0; i < n; i++)
	{
		Convert(pChArr, pArr1[i], n - 1);
		cout << pChArr << endl;
	}
	
	delete []pChArr;
	delete []pArr1;
	delete []pArr2;
	
	system("pause");
	return 0;
}

void Convert(char *p, int num, int n)
{
	for(int i = n; i >= 0; i--)
	{
		p[i] = num & 1 ? '#': ' ';
		num = num >> 1;
	}
}

int* CreateIntArray(int n)
{
	int *pArr = new int[n];
	for (int i = 0; i < n; i++)
	{
		cin >> pArr[i];
	}
	return pArr;
}