쾌락없는 책임 (공부)/알고리즘 문제풀이

[Algorithm] 프로그래머스 호텔 방 배정 - C++, unordered_map

허스크 2022. 11. 12. 18:13
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

#include <string>
#include <vector>
#include <unordered_map>
using namespace std;

unordered_map<long long, long long> hotelRoom;

long long FindAvailableRoomNumber(long long roomNumber){
    if(hotelRoom.find(roomNumber) == hotelRoom.end())
        return roomNumber;
    return hotelRoom[roomNumber] = FindAvailableRoomNumber(hotelRoom[roomNumber]);
}

vector<long long> solution(long long k, vector<long long> room_number) {
    vector<long long> answer;
    
    for(int i = 0; i < room_number.size(); i++){
        auto availableRoom{ FindAvailableRoomNumber(room_number[i]) };
        answer.push_back(availableRoom);
        hotelRoom[availableRoom] = availableRoom + 1;
    }
    
    return answer;
}

해시 맵을 하나 준비하고 이 맵에 key가 없다면 바로 방을 배정해주고 배정을 해 주면 다음 사람이 다음 방으로 갈 수 있게 availableRoom + 1을 지정해 주면 됩니다.

반응형