2019 카카오 인턴코테 문제

5시간을 잡고 실전처럼 진행하였으며 코드의 최적화나 알고리즘은 정확하지 않음.


코딩테스트 연습 - 호텔 방 배정 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 호텔 방 배정

 

programmers.co.kr


4번 문제였으며  사실 여기 까지 풀 시간이 있을지 몰랐다.

생각보다 빠르게 풀려 4번을 풀 수 있는 기회가 생겼으며 남은 시간을 모두 여기에 썻다.

이문제는 정확도 테스트와 효율성 테스트가 나뉘어져 있었으며, 정확도 테스트밖에 통과하지 못했다.

알고리즘이 바로 기억안나고 최적화를 할 시간이 부족했다.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long FIND_EMPTY_NUM(vector<long long> num, long long n)
{
    while (1)
    {
        n++;
        if (find(num.begin(), num.end(), n) == num.end())
            return n;
    }
}

vector<long long> solution(long long k, vector<long long> room_number) {
    vector<long long> answer;
    vector<long long> parent(room_number.size(), 0);

    for (int i = 0; i < room_number.size(); i++)
    {
        vector<long long>::iterator it = find(answer.begin(), answer.end(), room_number[i]);
        if (it == answer.end())
            answer.push_back(room_number[i]);

        else
            answer.push_back(FIND_EMPTY_NUM(answer, room_number[i]));
    }

    return answer;
}

+ Recent posts