File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * ์ ๊ทผ ๋ฐฉ๋ฒ :
3+ * - ์์ ์๊ฐ๊ณผ ์ข
๋ฃ ์๊ฐ์ ๊ฐ๊ฐ ๋ฐฐ์ด๋ก ๋ถ๋ฆฌํ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
4+ * - ์์ ์๊ฐ์ด ๊ฐ์ฅ ๋น ๋ฅธ ์ข
๋ฃ ์๊ฐ๋ณด๋ค ๋น ๋ฅด๋ค๋ฉด ๋ค๋ฅธ ํ์๋ฃธ ํ์ํ๋๊น ์นด์ดํธ ์ฆ๊ฐํ๋ค.
5+ * - ์์ ์๊ฐ์ด ์ข
๋ฃ ์๊ฐ๋ณด๋ค ๋๋ฆฌ๋ฉด ํ์๋ฃธ ์ฌ์ฌ์ฉํ ์ ์์ผ๋๊น ์ข
๋ฃ์๊ฐ ์ธ๋ฑ์ค ์ฆ๊ฐํ๋ค.
6+ *
7+ * ์๊ฐ๋ณต์ก๋ : O(nlogn)
8+ * - n = intervals์ ๊ธธ์ด, ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
9+ *
10+ * ๊ณต๊ฐ๋ณต์ก๋ : O(n)
11+ * - ์ธํฐ๋ฒ ๊ธธ์ด๋งํผ ๋ฐฐ์ด ํ์
12+ */
13+
14+ function minMeetingRooms ( intervals : number [ ] [ ] ) : number {
15+ const starts = intervals . map ( ( interval ) => interval [ 0 ] ) . sort ( ( a , b ) => a - b ) ;
16+ const ends = intervals . map ( ( interval ) => interval [ 1 ] ) . sort ( ( a , b ) => a - b ) ;
17+
18+ let roomCount = 0 ;
19+ let endIndex = 0 ;
20+
21+ for ( let i = 0 ; i < starts . length ; i ++ ) {
22+ if ( starts [ i ] < ends [ endIndex ] ) roomCount ++ ;
23+ else endIndex ++ ;
24+ }
25+
26+ return roomCount ;
27+ }
You canโt perform that action at this time.
0 commit comments