카카오 신입 공채 1차 코딩 테스트 풀이 - 1번문제

2018-06-03 12:42:27 | 조회수 7111



2017년 하반기 카카오에서 진행한 공채 코딩 테스트


신기하게도 대부분의 회사가 자체적인 채점 시스템 혹은 문제를 코딩인터뷰 플랫폼을 가진 기업들에게 외주를 줘서 시험을 보는데, 채점 플랫폼은 모르겠지만 문제를 공개했다는 점에선 상당히 신선하다고 볼 수 있습니다. 원 블로그에서도 문제가 공개 및 풀이가 공개되어 있으며, 불펌 금지!는 없었지만 여기서는 문제 풀이에 꼭 필요한 부분이 아니면 문제를 가져다 놓지는 않겠습니다. 여기서는 소스코드를 추가한 해설을 적겠습니다. 소스코드는 하단의 +를 클릭하여 볼 수 있습니다.


블로그 상단에 회사가 적어 놓았듯, ACM-ICPC 같은 대회 수준의 문제가 아닌, 구현을 평가하는 문제를 올려놓았다고 했습니다. 이렇게 모든 문제를 오픈하여 추후 카카오 입사를 희망하는 친구들이 미리 대비를 할 수 있게 해 놓은 것이 좋은 것 같습니다.


[총평]


1차 테스트의 총 문제는 7문제, 커트라인은 4문제였다고 합니다.자바스크립트, 파이썬, C++ 등 다양한 언어를 사용할 수 있다고 된 만큼 라이브러리의 규제가 없다고 판단됩니다. 커트라인에서 알 수 있듯이 전반적으로 초반 문제만 잘 풀었다면 무난하게 통과할 수 있었을 것 같습니다.


※ 문제는 문제 출처 사이트를 통해 읽고 오시는 것을 권장합니다.


[1. 비밀 지도(난이도 하)]




2개의 지도가 주어지고, 둘 중 하나라도 #인 경우 #이 되므로 or 연산을 해주면 됩니다. 단 지도를 주어진 수를 이진화 하여 얻어내는 과정이 필수입니다. 지도 한 변의 크기가 주어져 있으므로 부호화가 더욱 쉬워집니다.




vector<string> solve(int n, int arr1[], int arr2[])

{

    vector<string> ans(n);


    for (int i = 0; i < n; i++)

    {

        arr1[i] |= arr2[i];

    }


    for (int i = 0; i < n; i++)

    {

        for (int j = 0; j < n; j++)

        {

            ans[i] = (arr1[i] % 2 == 1 ? "#" : " ") + ans[i];

            arr1[i] >>= 1;

        }

    }


    return ans;

}


카카오 신입 공채 1차 코딩 테스트 풀이 - 1번문제 - 알고리즘닷컴
32 개의 글