๐Ÿ’ป Code-Kata 5

Min-Ho Leeยท2020๋…„ 7์›” 19์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
5/7
post-thumbnail

Sunday_July_19
.
.
.

๋ฌธ์ œ

์ธ์ž์ธ height๋Š” ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜ํ”„๋กœ ์ƒ๊ฐํ•œ๋‹ค๋ฉด y์ถ•์˜ ๊ฐ’์ด๊ณ , ๋†’์ด ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜์˜ ๊ทธ๋ž˜ํ”„๋ผ๋ฉด height ๋ฐฐ์—ด์€ [1, 8, 6, 2, 5, 4, 8, 3, 7] ์ž…๋‹ˆ๋‹ค.

์ € ๊ทธ๋ž˜ํ”„์— ๋ฌผ์„ ๋‹ด๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ , ๋ฌผ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋„“์€ ๋ฉด์ ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”.
๊ฐ€์ •
๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” 2์ด์ƒ์ž…๋‹ˆ๋‹ค.

1๏ธโƒฃ ๋ฐฉ๋ฒ•

def get_max_area(height):
  area = 0
  for i in range(0, len(height)-1):
    for j in range(i+1, len(height)):
      if height[i] == height[j]:
        if height[i] * (j - i) > area:
          area = height[i] * (j - i)
      else:
        if min(height[i], height[j]) * (j - i) > area:
          area = min(height[i], height[j]) * (j - i)

return area

์ œ๊ฐ€ ์ƒ๊ฐํ•œ ํ’€์ด๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ฒฝ์šฐ์˜ ๋„“์ด๋ฅผ ๊ตฌํ•ด์„œ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋จผ์ € ์ฒซ ๋ฒˆ์งธ for๋ฌธ์—์„œ๋Š” (๋ง‰๋Œ€๊ธฐ = ํ‘œ์˜ x์ขŒํ‘œ) ์ฒซ ๋ฒˆ์งธ ๋ง‰๋Œ€๊ธฐ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ „์˜ ๋ง‰๋Œ€๊ธฐ๊นŒ์ง€
๋‘ ๋ฒˆ์งธ for๋ฌธ์—์„œ๋Š” ๋‘ ๋ฒˆ์งธ ๋ง‰๋Œ€๊ธฐ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ง‰๋Œ€๊ธฐ๊นŒ์ง€ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

area๋ฅผ ์ฒ˜์Œ์— 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๊ณ , for๋ฌธ์„ ๋Œ๋ฆฌ๋ฉด์„œ ๋„“์ด๋ฅผ ๊ตฌํ•œ ๊ฐ’์„ area์™€ ๋น„๊ตํ•ด์„œ
area๋ณด๋‹ค ํฌ๋‹ค๋ฉด area์— ํ•ด๋‹น ๋„“์ด๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ๋งˆ์ง€๋ง‰์— returnํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

profile
๐Ÿ‡ Rabbit can take a rest, but ๐Ÿข turtle can't

0๊ฐœ์˜ ๋Œ“๊ธ€