๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/64063
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์์ค์ฝ๋
import java.util.Arrays;
import java.util.HashMap;
class Solution {
HashMap<Long, Long> rooms;
public long[] solution(long k, long[] room_number) {
rooms = new HashMap<>();
return Arrays.stream(room_number)
.map(this::findRoom)
.toArray();
}
public long findRoom(long num) {
if(!rooms.containsKey(num)) {
rooms.put(num, rooms.getOrDefault(num+1, num+1));
return num;
}
long next = findRoom(rooms.get(num));
rooms.put(num, next);
return next;
}
}
ํ๊ณ
๋ฌธ์ ๋ฅผ ๋ณด๊ณ Union-Find๊ฐ ๋ ์ฌ๋๋ค. ์ ๋ ฅ๊ฐ์ด ํฌ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด ๋์ ํด์๋งต์ผ๋ก <์์ฝ ๋ ๋ฐฉ ๋ฒํธ : ๋ค์ ๋ฐฉ ๋ฒํธ>์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ , ๋ค์ ๋ฐฉ ๋ฒํธ๋ฅผ ์ฐพ์ ๋ ์ฌ๊ท๋ฅผ ํตํด ๊ณ์ํด์ ๋งต์ ์ ๋ฐ์ดํธ ํด์ฃผ์๋ค.
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ] ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2020.04.01 |
---|---|
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ์ ํ๋ฒ์ค (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ์ถ์ ํธ๋ํฝ (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ํ์ผ๋ช ์ ๋ ฌ (0) | 2020.03.05 |