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