|
| 1 | +"""TC: O(n), SC: O(1) |
| 2 | +
|
| 3 | +์์ด๋์ด: |
| 4 | +๋์ด ๋ฆฌ์คํธ l์ด ์ฃผ์ด์ก๋ค๊ณ ํ์. ๊ทธ๋ฆฌ๊ณ ์ด ์์ ์๋ ์ต๋ ์์กฐ ๋ฉด์ ์ f(l)์ด๋ผ๊ณ ํ์. |
| 5 | +
|
| 6 | + โก โก โก |
| 7 | + โก โก โก โก |
| 8 | + โก โก โก โก โก โก โก โก โก |
| 9 | +โก โก โก โก โก โก โก โก โก โก โก โก |
| 10 | +โก โก โก โก โก โก โก โก โก โก โก โก โก โก |
| 11 | +2,5,3,3,1,3,1,2,2,5,3,5,3,4 |
| 12 | + ^ |
| 13 | + l |
| 14 | +
|
| 15 | +
|
| 16 | +๊ทธ๋ฌ๋ฉด ๋ค์์ด ํญ์ ์ฑ๋ฆฝํ๋ค. |
| 17 | +
|
| 18 | +- l์ ์ ๋์ ๊ฐ ์ค ์์ ๊ฐ x๊ฐ ์์ชฝ์ ์์๋ค๊ณ ํด๋ณด์. x๋ฅผ ๋บ ๋ฆฌ์คํธ l`์ ๋ง๋ ๋ค. |
| 19 | + - ์ด๋ ์์ ๊ฐ์ด ๋ท์ชฝ์ ์์์ด๋ ์ผ๋ฐ์ฑ์ ์์ง ์๋๋ค. |
| 20 | +
|
| 21 | + โโก โก โก |
| 22 | + โโก โก โก โก |
| 23 | + โโก โก โก โก โก โก โก โก โก |
| 24 | +โกโโก โก โก โก โก โก โก โก โก โก โก |
| 25 | +โกโโก โก โก โก โก โก โก โก โก โก โก โก โก |
| 26 | +2โ5,3,3,1,3,1,2,2,5,3,5,3,4 |
| 27 | +^ ^ |
| 28 | +x l` |
| 29 | +
|
| 30 | +
|
| 31 | +- f(l)์ ๊ทธ๋ ๋ค๋ฉด |
| 32 | + - f(l`)์ด๊ฑฐ๋(์ฆ, x๋ฅผ ์ฐ์ง ์์๊ฑฐ๋) |
| 33 | + - x๋ฅผ ์จ์ ๋ง๋ ์์กฐ ๋ฉด์ ์ค์ ์๋ค. |
| 34 | +
|
| 35 | +- ๊ทธ๋ฐ๋ฐ x๋ l์ ์ ๋ ๊ฐ ์ค์ ์์ ๊ฐ์ด๋ฏ๋ก, ์๋์ ๊ฐ์ ๋ถ์์ ํ ์ ์๋ค. |
| 36 | + 1) x๋ฅผ ์จ์ ๋ง๋๋ ์์กฐ์ ๋์ด๋ ์๋ฌด๋ฆฌ ๋์๋ x๋ค. x๋ณด๋ค ์์์ง ์๋ ์์ด๋, x๋ณด๋ค ์ปค์ง ์๋ ์๋ค. |
| 37 | + 2) x๋ฅผ ์จ์ ๋ง๋๋ ์์กฐ์ ํญ์ l์ ๋ค๋ฅธ์ชฝ ๋์ ์๋ ๋์ด๋ฅผ ์ ํํ์๋ ์ต๋๊ฐ ๋๋ค. |
| 38 | +- ๊ทธ๋ฌ๋ฏ๋ก, x๋ฅผ ์จ์ ๋ง๋ค ์ ์๋ ์์กฐ์ ์ต๋ ํฌ๊ธฐ๋ l์ ๋ค๋ฅธ์ชฝ ๋์ ์๋ ๋์ด๋ฅผ ์ ํํ ๊ฒฝ์ฐ ๋์จ๋ค. |
| 39 | +
|
| 40 | +์์ ๋ด์ฉ์ ์๋์ ์ค๋ช
์ ํตํด ์๊ฐ์ ์ผ๋ก ํ์ธํ ์ ์๋ค. |
| 41 | +
|
| 42 | +- ์ ๋์ ์ ํํ ๊ฒฝ์ฐ x๋ก ๋ง๋ค ์ ์๋ ์ต๋ ๋ฉด์ ์ด๋ค. |
| 43 | +
|
| 44 | + โโก โก โก |
| 45 | + โโก โก โก โก |
| 46 | + โโก โก โก โก โก โก โก โก โก |
| 47 | +โ โโ โ โ โ โ โ โ โ โ โ โ โ โ |
| 48 | +โ โโ โ โ โ โ โ โ โ โ โ โ โ โ |
| 49 | +2โ5,3,3,1,3,1,2,2,5,3,5,3,4 |
| 50 | +^ ^ |
| 51 | +
|
| 52 | +- x๋ ๊ทธ๋๋ก ๋ ์ฑ ๋ค๋ฅธ์ชฝ ๋์ ์์ชฝ์ผ๋ก ๋ ์ด๋ํ๋ฉด ์์กฐ ๋์ด๋ ๋์ผํ๋ฐ ํญ์ ๋ ์์์ง๋ค. |
| 53 | +
|
| 54 | + โโก โก โก |
| 55 | + โโก โก โก โก |
| 56 | + โโก โก โก โก โก โก โก โก โก |
| 57 | +โ โโ โ โ โ โ โ โ โ โ โ โ โก โก |
| 58 | +โ โโ โ โ โ โ โ โ โ โ โ โ โก โก |
| 59 | +2โ5,3,3,1,3,1,2,2,5,3,5,3,4 |
| 60 | +^ ^ |
| 61 | +
|
| 62 | +- ์ฌ์ง์ด x๋ณด๋ค ์์ ๋์ด ๊ฐ์ ์ ํํ ๊ฒฝ์ฐ ์์กฐ ๋์ด๋ ์์์ง๊ณ ํญ๋ ์์์ง๋ ์ผ์ด ์ผ์ด๋๋ค. |
| 63 | +
|
| 64 | + โโก โก โก |
| 65 | + โโก โก โก โก |
| 66 | + โโก โก โก โก โก โก โก โก โก |
| 67 | +โกโโก โก โก โก โก โก โก โก โก โก โก |
| 68 | +โ โโ โ โ โ โ โ โก โก โก โก โก โก โก |
| 69 | +2โ5,3,3,1,3,1,2,2,5,3,5,3,4 |
| 70 | +
|
| 71 | +
|
| 72 | +์ฆ, ์์ ๋ด์ฉ์ ์ข
ํฉํ๋ฉด ๋ค์์ ํ์ธํ ์ ์๋ค. |
| 73 | +- f(l) = max( (l์ ์ ๋ ๋์ด๋ฅผ ์ ํํด์ ๋ง๋ ์์กฐ ๋์ด), f(l`) ) |
| 74 | +- ๊ทธ๋ฐ๋ฐ f(l`)๋ f(l)์ ๊ตฌํ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ตฌํ ์ ์๋ค. ์ฆ, ์๋ก ๋ง๋ค์ด์ง l`์ ์ ๋ ๋์ด ์ค |
| 75 | + ์งง์ ์ชฝ์ ๋บ ๋ฆฌ์คํธ l``์ ๋ง๋ค์ด์ ์์ ๊ณผ์ ์ ๋ฐ๋ณตํ ์ ์๋ค. |
| 76 | +- ์ฆ, f(l)์ ์๋์ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ๊ตฌํ ์ ์๋ค. |
| 77 | + - l์ ์ ๋ ๋์ด๋ฅผ ์จ์ ์์กฐ ๋์ด๋ฅผ ๊ตฌํ๊ณ , ๊ธฐ์กด ์ต๋ ๋์ด์ ๋น๊ตํ์ฌ ๋ ํฐ ๊ฐ์ ์ต๋ ๋์ด์ ๋์
ํ๋ค. |
| 78 | + - l์์ ์งง์ ์ชฝ ๋์ด๋ฅผ ๋บ๋ค. |
| 79 | + - ์ ๊ณผ์ ์ l์ ์์ดํ
์ด ํ๋๋ง ๋จ์ ๋๊น์ง ๋ฐ๋ณต. |
| 80 | +
|
| 81 | +
|
| 82 | +SC: |
| 83 | +- ํฌ ํฌ์ธํฐ๋ฅผ ์จ์ l์ ์์, ๋ ์ธ๋ฑ์ค๋ฅผ ๊ด๋ฆฌํ๋ฉด O(1). |
| 84 | +- ์์กฐ ์ต๋ ๋์ด๊ฐ ๊ด๋ฆฌ, O(1). |
| 85 | +- ์ข
ํฉํ๋ฉด O(1). |
| 86 | +
|
| 87 | +TC: |
| 88 | +- ๋ฆฌ์คํธ์ ์ ๋ ๋์ด๋ฅผ ํตํด ๋ฉด์ ๊ตฌํ๊ธฐ, O(1). |
| 89 | +- ํฌ์ธํฐ ์ด๋ O(1). |
| 90 | +- ํฌ์ธํฐ ์ด๋์ ๋ ํฌ์ธํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ 1์ฉ ํญ์ ๊ฐ์ํ๋ฏ๋ก ์ ๊ณผ์ ์ ์ต๋ n-2๋ฒ ๋ฐ๋ณต. |
| 91 | +- ์ข
ํฉํ๋ฉด O(n). |
| 92 | +""" |
| 93 | + |
| 94 | + |
| 95 | +class Solution: |
| 96 | + def maxArea(self, height: List[int]) -> int: |
| 97 | + max_area = -1 |
| 98 | + s, e = 0, len(height) - 1 |
| 99 | + while s < e: |
| 100 | + max_area = max(max_area, (e - s) * min(height[s], height[e])) |
| 101 | + if height[s] > height[e]: |
| 102 | + e -= 1 |
| 103 | + else: |
| 104 | + s += 1 |
| 105 | + return max_area |
0 commit comments