[Programmers] ๋•…๋”ฐ๋จน๊ธฐ

Updated:

๋•…๋”ฐ๋จน๊ธฐ

๋•…๋”ฐ๋จน๊ธฐ ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ์ด๋™ํ•œ๋‹ค.

์ฒ˜์Œ์—” ์ฐจ๋ก€๋Œ€๋กœ ๋‚ด๋ ค์˜ค๋ฉด์„œ ์ธ๋ฑ์Šค๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„๊ฐ€๋Š” ์•„์ฃผ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ–ˆ๋‹ค..

๋ฌผ๋ก  ์—ญ์‹œ ์•„๋‹ˆ์˜€๋‹ค!!! ๋งค๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๋งˆ๋‹ค ํ•œ ๋ฒˆ ๋” ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ํ‘ธ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋Š”๋ฐ ๊ณ ์ณ์•ผ๊ฒ ๋‹ค..

land = [[7, 7, 60, 100], [50, 10, 5, 100], [4, 7, 2, 300], [10, 2, 5, 900]] ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด 60 + 100 + 7 + 900 ์ด ์ •๋‹ต์ด๋‹ค.

land = [[7, 7, 60, 100], [50, 10, 5, 100], [4, 7, 2, 300]] ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด 100 + 10 + 300 ์ด ์ •๋‹ต์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์ผ๋ถ€๋Š” ๊ฐ™์ง€๋งŒ ์–ด๋–ค ํ–‰์ด ๋” ์ถ”๊ฐ€ ๋˜๋Š๋ƒ์— ๋”ฐ๋ผ ๋‹ต์ด ๋‹ฌ๋ผ์ง„๋‹ค..

[Programmers]ย ๊ฐ€์žฅย ํฐย ์ •์‚ฌ๊ฐํ˜•ย ์ฐพ๊ธฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฐ๋‚ฌ๋‹ค!! ์ฐจ๋ก€๋Œ€๋กœ ๋ฐ˜๋ณต์„ ํ•˜๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ๋ฌธ์ œ..

DP๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์•Œ์•˜์ง€๋งŒ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋„๋ฌด์ง€ ์ƒ๊ฐ์ด ๋‚˜์งˆ ์•Š์•˜๋‹ค..

์ •๋‹ต์€ ์•„์ฃผ ๊ฐ„๋‹จํ–ˆ๋‹ค!! ์‹œ์•ผ๋ฅผ ๋„ˆ๋ฌด ์ข๊ฒŒ ๋ณด๊ณ  ์žˆ์—ˆ๋‹ค.. ๊ฐ ํ–‰ ๋งˆ๋‹ค ์ด์ „ ํ–‰์˜ ๊ฒน์น˜์ง€ ์•Š๋Š” ์ธ๋ฑ์Šค ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ๋”ํ•ด๊ฐ€๋ฉด ๋๋‹ค.


from copy import deepcopy


def solution(land):
	dp = deepcopy(land)
	
	for idx in range(1, len(land)):
		dp[idx][0] += max(dp[idx - 1][1], dp[idx - 1][2], dp[idx - 1][3])
		dp[idx][1] += max(dp[idx - 1][0], dp[idx - 1][2], dp[idx - 1][3])
		dp[idx][2] += max(dp[idx - 1][0], dp[idx - 1][1], dp[idx - 1][3])
		dp[idx][3] += max(dp[idx - 1][0], dp[idx - 1][1], dp[idx - 1][2])

	return max(dp[len(dp) - 1])

๋‹ค ํ’€๊ณ ๋ณด๋ฉด ์•„์ฃผ ์‰ฌ์šด๋ฌธ์ œ์ด๋‹ค.. DP ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ๋” ๋งŽ์ด ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.


Categories:

Updated:

Leave a comment