File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ νμ΄
3
+ - νμμ μμμκ°κ³Ό μ’
λ£μκ°μ κ°κ° μ€λ¦μ°¨μ μ λ ¬νμ¬ νμ΄ν μ μμ΅λλ€
4
+ Big O
5
+ - N: μ£Όμ΄μ§ λ°°μ΄ intervalsμ κΈΈμ΄
6
+ - Time complexity: O(NlogN)
7
+ - starts, ends μμ± -> O(N)
8
+ - slices.Sort() -> O(NlogN)
9
+ - λ§μ§λ§ λ°λ³΅λ¬Έ -> O(N)
10
+ - Space complexity: O(logN)
11
+ - Goμ slices.Sort()λ ν΅μνΈλ₯Ό μ΄μ©νλ―λ‘ μ¬κ· νΈμΆ μ€ν κΉμ΄ O(logN)μ΄ κ³ λ €λμ΄μΌ ν¨
12
+ */
13
+
14
+ import "slices"
15
+
16
+ func minMeetingRooms (intervals [][]int ) int {
17
+ n := len (intervals )
18
+
19
+ if n == 1 {
20
+ return 1
21
+ }
22
+
23
+ starts := make ([]int , n ) // νμ μμμκ°λ€
24
+ ends := make ([]int , n ) // νμ μ’
λ£μκ°λ€
25
+ for i , interval := range intervals {
26
+ starts [i ] = interval [0 ]
27
+ ends [i ] = interval [1 ]
28
+ }
29
+ // μ€λ¦μ°¨μ μ λ ¬
30
+ slices .Sort (starts )
31
+ slices .Sort (ends )
32
+
33
+ rooms := 0
34
+ sPtr := 0
35
+ ePtr := 0
36
+ for sPtr < n {
37
+ if starts [sPtr ] < ends [ePtr ] { // νμ¬ μ¬μ©κ°λ₯ν νμμ€μ΄ μμ (νμ¬ μ§νμ€μΈ λͺ¨λ νμκ° starts[sPtr]λ³΄λ€ νΌ)
38
+ rooms ++ // μλ‘μ΄ νμμ€ μΆκ°ν¨
39
+ } else {
40
+ ePtr ++ // κΈ°μ‘΄ νμμ€ μ€μ λ¨λ λ°©μ΄ μμ, μλ‘μ΄ νμμ€ μΆκ°νμ§ μμ
41
+ }
42
+ sPtr ++
43
+ }
44
+
45
+ return rooms
46
+ }
You canβt perform that action at this time.
0 commit comments