File tree 1 file changed +27
-0
lines changed 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