42862. ์ฒด์ก๋ณต
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ฒด์ก๋ณต
| ๋ฌธ์ ์ ํ | ๋์ด๋ | ๊ฑธ๋ฆฐ ์๊ฐ | ํด๊ฒฐ ์ ๋ฌด(โ /โ) |
|---|---|---|---|
| ํ์๋ฒ(๊ทธ๋ฆฌ๋) | lv.1 | 1์๊ฐ | โ |
์ค๊ณ ๋ฐฉ๋ฒ#
Set์ ์ฌ์ฉํด์
reserve์lost์ ์ฐจ์งํฉ์ผ๋กreserveSet,lostSet์๋ง๋ ๋ค.reserveSet์ ์ํํ๋ฉด์ ์์ ํ์์ด ์ฒด์ก๋ณต์ด ์๋ค๋ฉด ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๊ณ๋ค์ ํ์์ด ์ฒด์ก๋ณต์ด ์๋ค๋ฉด ์ฒด์ก๋ณต์ ๋น๋ ค์ค๋ค.
์ด ํ์์์
lostSet.size๋งํผ์ ์ ๊ฑฐํ๋ค.
์ฝ๋#
Set.prototype.difference = function (setB) { let difference = new Set(this); for (let elem of setB) { difference.delete(elem); } return difference;};
function solution(n, lost, reserve) { const reserveSet = new Set(reserve).difference(new Set(lost)); const lostSet = new Set(lost).difference(new Set(reserve));
reserveSet.forEach((i) => { if (lostSet.has(i - 1)) { lostSet.delete(i - 1); } else if (lostSet.has(i + 1)) { lostSet.delete(i + 1); } });
return n - lostSet.size;}์๊ฐ ๋ณต์ก๋#
โ Set์
has,delete,add์ฐ์ฐ์ด O(1) ์ด๋ผ๋ ์ ์ ์๋กญ๊ฒ ์๊ฒ ๋์๋ค. (๋ฐฐ์ด์ O(n))
N =
reserveSet, M =lostSet์ฐจ์งํฉ ์์ฑ : O(N), O(M)
reserveSet์ํ ๋ฐlostSet๊ฒ์ : O(NM)์ด O(NM)
์ด๋ ค์ ๋ ์ #
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ๋ค.