Skip to content

Commit 246ac78

Browse files
authored
Merge pull request #1621 from KwonNayeon/main
[KwonNayeon] Week 13 solutions
2 parents efb1de8 + 8ad0e8d commit 246ac78

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
"""
2+
Constraints:
3+
- -10^5 <= num <= 10^5
4+
- There will be at least one element in the data structure before calling findMedian.
5+
- At most 5 * 10^4 calls will be made to addNum and findMedian.
6+
7+
Time Complexity:
8+
- addNum(): O(nlogn)
9+
- ๋งค๋ฒˆ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ
10+
- findMedian(): O(1)
11+
- ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ์—์„œ ์ธ๋ฑ์Šค ์ ‘๊ทผ
12+
13+
Space Complexity: O(n)
14+
- ์ž…๋ ฅ๋œ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ
15+
16+
ํ’€์ด๋ฐฉ๋ฒ•:
17+
1. ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉ
18+
2. ๋ฆฌ์ŠคํŠธ์— ๊ฐ ์š”์†Œ๋“ค ์ถ”๊ฐ€ ํ›„ ์ •๋ ฌ
19+
3. ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ๊ฐฏ์ˆ˜๊ฐ€ ํ™€์ˆ˜/์ง์ˆ˜์ผ ๋•Œ์˜ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ ์„œ median ๊ฐ’์„ ๊ตฌํ•จ
20+
21+
๋ฉ”๋ชจ:
22+
- heap์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ์ผ๋‹จ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค.
23+
- ๋‚˜์ค‘์— heap์œผ๋กœ ๋‹ค์‹œ ํ’€๊ธฐ
24+
"""
25+
class MedianFinder:
26+
27+
def __init__(self):
28+
self.nums = []
29+
30+
def addNum(self, num: int) -> None:
31+
self.nums.append(num)
32+
self.nums.sort()
33+
34+
35+
def findMedian(self) -> float:
36+
n = len(self.nums)
37+
if n % 2 == 1:
38+
return self.nums[n // 2]
39+
else:
40+
mid1 = self.nums[n // 2 - 1]
41+
mid2 = self.nums[n // 2]
42+
return (mid1 + mid2) / 2.0
43+

โ€Žmeeting-rooms/KwonNayeon.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,19 @@
1313
1414
ํ’€์ด๋ฐฉ๋ฒ•:
1515
1. Base case: ๋นˆ ๋ฐฐ์—ด/none์ผ ๋•Œ True ๋ฐ˜ํ™˜
16-
2. intervals๋ฅผ ์‹œ์ž‘์  ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
17-
3. prev_end ์ดˆ๊ธฐํ™” (์ฒซ ๋ฒˆ์งธ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„)
16+
2. ๋ฆฌ์ŠคํŠธ(ntervals)๋ฅผ ์‹œ์ž‘์  ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
17+
3. prev_end(์ฒซ ๋ฒˆ์งธ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„) ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
1818
4. ๋‘ ๋ฒˆ์งธ ๋ฏธํŒ…๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ:
1919
- ๋งŒ์•ฝ ํ˜„์žฌ ์‹œ์ž‘์  (๋ฏธํŒ… ์‹œ์ž‘ ์‹œ๊ฐ„)์ด ์ด์ „ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„๋ณด๋‹ค ์ž‘์œผ๋ฉด false ๋ฐ˜ํ™˜
2020
- ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด prev_end๋ฅผ ํ˜„์žฌ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ
2121
5. ๋ชจ๋“  ๋ฏธํŒ…์„ ๊ฒ€์‚ฌํ•œ ํ›„์—๋„ ์ถฉ๋Œ์ด ์—†์œผ๋ฉด true ๋ฐ˜ํ™˜
22+
23+
๋ฉ”๋ชจ:
24+
1. ๋ณ€์ˆ˜๋ช… ํ—ท๊ฐˆ๋ฆผ
25+
- intervals๋Š” ๋ฆฌ์ŠคํŠธ -> `.end` ์†์„ฑ ์—†์Œ
26+
- interval์€ ๊ฐ์ฒด -> `.end` ์†์„ฑ ์žˆ์Œ
27+
2. ์ •๋ ฌ ๋ฌธ๋ฒ•
28+
- list.sort(key=lambda x: x.start)
2229
"""
2330
from typing import List
2431

0 commit comments

Comments
ย (0)