Search

๊ตฌ์—ฐ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
2090
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
(1) ์žฌ๊ท€ ํ•จ์ˆ˜ ์ด์šฉํ•˜๊ธฐ
def calculate_max_value(row, col, triangle): if row == len(triangle)-1: # depth๊ฐ€ 1์ด๋ผ๋Š” ๊ฒƒ์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋“ค์„ ๋ณธ๋‹ค๋Š” ๊ฒƒ return triangle[row][col] else: num1 = calculate_max_value(row+1, col, triangle) + triangle[row][col] num2 = calculate_max_value(row+1, col+1, triangle) + triangle[row][col] # print(num1) # print(num2) # # print(max(num1, num2)) return max(num1, num2) # depth๊ฐ€ 2 ์ด์ƒ์ด๋ฉด col์ด ์ž๊ธฐ๋ž‘ ๊ฐ™๊ฑฐ๋‚˜ ์ž๊ธฐ๋ณด๋‹ค 1 ํฐ ๊ฒฝ์šฐ ์ค‘์—์„œ ์ตœ๋Œ“๊ฐ’ def solution(triangle): answer = calculate_max_value(0, 0, triangle) return answer print(solution([[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]]))
Python
๋ณต์‚ฌ
(2) ๋ฆฌ์ŠคํŠธ์— ๊ธฐ๋กํ•˜๊ธฐ
import copy def solution(triangle): # ์ธต์˜ ๊ฐœ์ˆ˜ = ์ˆซ์ž ๊ฐœ์ˆ˜ max_nums = [0]*len(triangle) print(max_nums) max_nums[0] = triangle[0][0] print(max_nums) for i in range(1,len(triangle)): # ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด์„œ N-1๋ฒˆ์งธ์˜ ๊ฐ’์ด ์†Œ์‹ค๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณต์‚ฌํ•ด๋‘”๋‹ค. max_nums1 = copy.copy(max_nums) # ์‚ผ๊ฐํ˜•์˜ ์™ผ์ชฝ ๋ณ€๊ณผ ์˜ค๋ฅธ์ชฝ ๋ณ€ max_nums[0] = max_nums1[0] + triangle[i][0] max_nums[i] = max_nums1[i-1] + triangle[i][i] # ๋‚˜๋จธ์ง€ for j in range(1, i): max_nums[j] = triangle[i][j] + max(max_nums1[j-1], max_nums1[j]) print(max_nums) return max(max_nums) print(solution([[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]]))
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
ํ•ฉ์ด ์ตœ๋Œ€์ธ ๊ฒฝ๋กœ ๊ตฌํ•˜๊ธฐ โ†’ N์ธต์—์„œ์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋ ค๋ฉด (N-1)์ธต๊นŒ์ง€์˜ ์ตœ๋Œ“๊ฐ’ + N์ธต์˜ ๊ฐ’ โ†’ ์žฌ๊ท€ ํ•จ์ˆ˜ ๋˜๋Š” ๋ฆฌ์ŠคํŠธ์— ๊ธฐ๋กํ•˜๊ธฐ: DP

1. ์žฌ๊ท€ ํ•จ์ˆ˜ ์ด์šฉํ•˜๊ธฐ

์•„๋ž˜์—์„œ ํ•œ ์ธต์”ฉ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•
์ œ์ผ ์•„๋ž˜์ธต์€ ๊ทธ๋Œ€๋กœ returnํ•˜๊ณ  ๊ทธ ์œ„์ธต์€ ์•„๋ž˜ ์ธต์˜ ๋‘ ์ˆ˜ ์ค‘์—์„œ ํฐ ์ˆ˜๋ฅผ returnํ•˜์—ฌ ํ•ฉํ•œ๋‹ค โ†’ ์ด ๋•Œ ํ–‰๋ ฌ์„ ๋ณ€ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ตœ๋Œ“ ๊ฐ’๋“ค์„ ๊ฐ€์ง€๊ณ  ์˜ฌ๋ผ๊ฐ„๋‹ค.
์ œ์ผ ์œ„์ธต๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ„ ํ›„ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•œ๋‹ค.

2. ๋ฆฌ์ŠคํŠธ์— ๊ธฐ๋กํ•˜๊ธฐ

์œ„์—์„œ ์•„๋ž˜๋กœ ํ•œ ์ธต ์”ฉ ๋‚ด๋ ค์˜ค๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•œ๋‹ค.
N์ธต์˜ ๊ฐ’๋“ค์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” N-1์ธต์—์„œ์˜ ์ตœ๋Œ“๊ฐ’๋“ค๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ์—๋Š” ๊ฐ ์ธต์„ ๋‚ด๋ ค์˜ค๋ฉด์„œ ๋ณ€ํ™”ํ•œ ๊ฐ’๋“ค๋งŒ ๊ธฐ๋กํ•œ๋‹ค.
์ด ๋•Œ ์‚ผ๊ฐํ˜•์˜ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ๋ณ€(7,3,8,2,4์™€ 7,8,0,4,5)๋Š” ํ•œ ๊ณณ์—์„œ๋งŒ ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋”ฐ๋กœ ์ฒดํฌํ•œ๋‹ค.