2017 카카오 신입공채 1차 테스트 1번 문제

최근에 웹서핑을 하다 흥미로운 자료을 발견했습니다.

바로 2017년도 카카오 공채 1차 코딩테스트 문제.

카카오 블로그에 방문해보면 해당 입사 시험 문제에 대해 쉽게 이해하도록 설명하고 있습니다. 개인적으로 프로그래밍을 공부하는 사람이라면 당연히 도전해봐야겠죠.

대한민국에서 손꼽히는 프로그래머 집단에서 출제한 문제인 만큼, 독창성과 함께 기업에서 어떤 프로그래밍 지식을 요구하는지 짐작해 볼 수 있는 좋은 기회가 될 거라 생각합니다.

전체 7문항이며 5시간 안에 4문제 이상을 풀면 1차 통과입니다.

아래는 그 중 가장 난이도가 낮은 1번 문제 입니다.

자세한 내용은 카카오 블로그 에서 참조하기 바라며, 제가 C++로 작성한 코드는 아래와 같습니다.

#include 
#include 
using namespace std;

const int n = 5;

void printmap(const bitset map1[], const bitset map2[])
{
 // 결과 저장용 5비트 비트셋 배열 5개
 bitset resultmap[n]; 

 for (int i = 0; i < n; i++)
 {
  // 비트 OR 연산
  resultmap[i] = map1[i] | map2[i];

  for (int j = n-1; j >= 0; j--)
  {
   // OR연산 결과 0이면 공백, 아니면 # 출력
   if (resultmap[i][j] == 0)
   {
    cout << ' ';
   }
   else
   {
    cout << '#';
   }
  }
  cout << endl;
 }
}

int main()
{
 // 10진수 5가지를 정수형 배열에 저장
 int arr1[] = { 9, 20, 28, 18, 11 };
 int arr2[] = { 30, 1, 21, 17, 28 };

 // 5비트 비트셋 배열 5개, 각 2개 생성(arr1, arr2)
 bitset map1[n], map2[n];

 for (int i = 0; i < n; i++)
 {
  // 10진수를 2진수로
  map1[i] = arr1[i];
  map2[i] = arr2[i];
 }

 printmap(map1, map2);

 return 0;
}

결과는 아래와 같습니다.

#####
# # #
### #
#  ##
#####
계속하려면 아무 키나 누르십시오 . . .

댓글

이 블로그의 인기 게시물

Qt Designer 설치하기

C++ 예제 (소켓 서버, 이미지, 파일전송)