File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed
container-with-most-water Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 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
You canโt perform that action at this time.
0 commit comments