programmers.co.kr/learn/courses/30/lessons/64063
map의 경우
<희망하는 호실, 배정될 호실>로
room_number를 순회하면서 map값을 추가 및 수정하여서 값을 구합니다.
처음 배정 되는 경우 희망하는 호실에 배정해주고 바로 다음 해당 호실을 희망하는 경우 +1에 배정된다는 것을 고려해보시면 이해가 되실겁니다.
import java.util.HashMap;
import java.util.Map;
// 프로그래머스 호텔 방 배정 문제
class Solution {
static Map<Long, Long> map = new HashMap<>();
public long[] solution(long k, long[] room_number) {
long[] answer = new long[room_number.length];
for (int i = 0; i < room_number.length; i++) {
answer[i] = getEmptyRoom(room_number[i]);
}
return answer;
}
public long getEmptyRoom(long wantRoomNumber) {
if(!map.containsKey(wantRoomNumber)) {
map.put(wantRoomNumber, wantRoomNumber + 1);
return wantRoomNumber;
}
long emptyRoom = getEmptyRoom(map.get(wantRoomNumber));
map.put(wantRoomNumber, emptyRoom);
return emptyRoom;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 비밀지도 문제 (자바) (0) | 2021.05.07 |
---|---|
프로그래머스 - 동굴 탐험 문제 (자바) (0) | 2021.05.07 |
프로그래머스 - 불량 사용자 문제 (자바) (0) | 2021.05.06 |
프로그래머스 - 경주로 건설 문제 (자바) (0) | 2021.05.05 |
프로그래머스 - 키패드 누르기 문제 (자바) (0) | 2021.05.04 |