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