๐Ÿ’ป์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œํ’€์ด12

์ง€๋ฏผ์„œยท2023๋…„ 3์›” 14์ผ
0

coding test

๋ชฉ๋ก ๋ณด๊ธฐ
12/30

Chapter10. ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

[๋ฌธ์ œ40] ์ •์ˆ˜ ์‚ผ๊ฐํ˜• - Level3

		7
	  3  8
	8   1   0
  2   7   4   4
4	5	2	6	5

์œ„์™€ ๊ฐ™์€ ์‚ผ๊ฐํ˜•์˜ ๊ผญ๋Œ€๊ธฐ์—์„œ ๋ฐ”๋‹ฅ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ๊ฒฝ๋กœ ์ค‘, ๊ฑฐ์ณ๊ฐ„ ์ˆซ์ž์˜ ํ•ฉ์˜ ๊ฐ€์žฅ ํฐ ๊ฒฝ์šฐ๋ฅผ ์ฐพ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์นธ์œผ๋กœ ์ด๋™ํ•  ๋•Œ๋Š” ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ ๋˜๋Š” ์™ผ์ชฝ์œผ๋กœ๋งŒ ์ด๋™ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 3์—์„œ๋Š” ๊ทธ ์•„๋ž˜์นธ์˜ 8 ๋˜๋Š” 1๋กœ๋งŒ ์ด๋™ ๊ฐ€๋Šฅ

์‚ผ๊ฐํ˜•์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด triangle์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฑฐ์ณ๊ฐ„ ์ˆซ์ž์˜ ์ตœ๋Œ“๊ฐ’์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

[์ œํ•œ์‚ฌํ•ญ]

  • ์‚ผ๊ฐํ˜•์˜ ๋†’์ด๋Š” 1 ์ด์ƒ 500 ์ดํ•˜
  • ์‚ผ๊ฐํ˜•์„ ์ด๋ฃจ๊ณ  ์žˆ๋Š” ์ˆซ์ž๋Š” 0 ์ด์‚ฌ 9,999 ์ดํ•˜์˜ ์ •์ˆ˜

[์ฝ”๋“œ์ž‘์„ฑ]

  • ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์† ์Œ“์„ ๋ฐฐ์—ด ์ƒ์„ฑ
def solution(triangle):
	dp = [[0, *t, 0] for t in triangle]
  • ๋งจ ๊ผญ๋Œ€๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ํ•˜๋‚˜์”ฉ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ๊ณ„์‚ฐ
for i in range(1, len(triangle)):
	for j in range(1, i+2):
    	dp[i][j] += max(dp[i-1][j-1], dp[i-1][j])
  • ๊ฒฐ๊ณผ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜
return max(dp[-1])

[์ „์ฒด์ฝ”๋“œ]

def solution(triangle):
	dp = [[0, *t, 0] for t in triangle]
    for i in range(1, len(triangle)):
		for j in range(1, i+2):
    		dp[i][j] += max(dp[i-1][j-1], dp[i-1][j])
        
	return max(dp[-1])

[๋‹ค๋ฅธ ๋ฌธ์ œํ’€์ด]

  • ๋†’์ด ์ง€์ •
def solution(triangle):
	height = len(triangle) - 1
  • ๋งจ ์•„๋ž˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ํ•˜๋‚˜์”ฉ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ๊ณ„์‚ฐ
while height > 0:
	for i in range(height):
    	triangle[height-1][i] += max([triangle[height][i], triangle[height][i+1]])
    height -= 1
  • ๊ฒฐ๊ณผ ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜
return triangle[0][0]

[์ „์ฒด์ฝ”๋“œ2]

def solution(triangle):
	height = len(triangle) - 1
    
    while height > 0:
      for i in range(height):
          triangle[height-1][i] += max([triangle[height][i], triangle[height][i+1]])
      height -= 1
    
    return triangle[0][0]
profile
๐Ÿ’ป + ๐ŸŽฅ

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