Skip to content

Commit 0e45f5d

Browse files
committed
week 6 - container with most water
1 parent cda7e0a commit 0e45f5d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
2+
# - two point ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, height์˜ ๊ธธ์ด n๋งŒํผ์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ์‚ฌ์šฉ
3+
# ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
4+
# - ์ž…๋ ฅ ๋ฆฌ์ŠคํŠธ ์™ธ์— ์ƒ์ˆ˜ ๊ฐœ์ˆ˜์˜ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
5+
6+
class Solution:
7+
# x์˜ ๊ธธ์ด๋ฅผ ๋ณ€ํ™” ์‹œํ‚ฌ ๋•Œ ๋†’์ด๋ฅผ ๊ณ ๋ คํ•˜๋ฉฐ ๋ณ€ํ™” ์‹œํ‚จ๋‹ค.
8+
# ์ด ๋•Œ start ๋˜๋Š” end๋ฅผ ์˜ฎ๊ธฐ๋Š” ๊ธฐ์ค€์€ ๊ฐ ํฌ์ธํŠธ์—์„œ์˜ ๋†’์ด ์ค‘ ์ž‘์€ ๊ฒƒ์„ ์˜ฎ๊ธด๋‹ค.
9+
# ์™œ๋ƒํ•˜๋ฉด, ํ•ด๋‹น ๋ฌธ์ œ์—์„œ ๋†’์ด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๋†’์ด๊ฐ€ ์ž‘์€ ์ชฝ์ด๋ฉฐ,
10+
# ๋†’์ด๊ฐ€ ๋†’์€ ๊ฒƒ์„ ์˜ฎ๊ฒจ๋ดค์ž ๊ฐ€๋กœ ๊ธธ์ด๋งŒ ์งง์•„์ ธ ์˜คํžˆ๋ ค ๋„“์ด๋Š” ์ถ•์†Œ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
11+
def maxArea(self, height: List[int]) -> int:
12+
start = 0
13+
end = len(height) - 1
14+
result_area = (end - start) * min(height[start], height[end])
15+
16+
while start < end:
17+
if height[start] < height[end]:
18+
# start ์ชฝ์˜ ๋†’์ด๊ฐ€ ๋‚ฎ์„ ๋• start๋ฅผ ์˜ฎ๊น€
19+
start += 1
20+
else:
21+
# end ์ชฝ์˜ ๋†’์ด๊ฐ€ ๋‚ฎ์„ ๋• end๋ฅผ ์˜ฎ๊น€(๊ฐ™์„ ๋•Œ๋Š” ๋ญ˜ ์˜ฎ๊ฒจ๋„ ์ƒ๊ด€ ์—†์Œ)
22+
end -= 1
23+
24+
# ์˜ฎ๊ธด ํ›„์˜ ๋„’์ด๊ฐ€, ์ง€๊ธˆ๊นŒ์ง€ ๊ณ„์‚ฐํ•œ ๋„“์ด๋ณด๋‹ค ๋„“์–ด์ง„ ๊ฒƒ์ธ์ง€ ํ™•์ธํ•˜์—ฌ ๋” ํฐ์ˆ˜๋ฅผ
25+
# result_area์— ์ €์žฅํ•จ
26+
result_area = max(
27+
(end - start) * min(height[start], height[end]),
28+
result_area
29+
)
30+
31+
return result_area

0 commit comments

Comments
ย (0)