MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋•…๋”ฐ๋จน๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋•…๋”ฐ๋จน๊ธฐ

MUKER 2023. 4. 5. 12:57
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


๋‚˜์˜ ํ’€์ด

func solution(_ land:[[Int]]) -> Int{
    var myland = land
    for i in 1..<myland.count {
        myland[i][0] += max(myland[i-1][1], myland[i-1][2], myland[i-1][3])
        myland[i][1] += max(myland[i-1][0], myland[i-1][2], myland[i-1][3])
        myland[i][2] += max(myland[i-1][0], myland[i-1][1], myland[i-1][3])
        myland[i][3] += max(myland[i-1][0], myland[i-1][1], myland[i-1][2])
    }
    return myland.last!.max()!
}

ํ’€์ด ํ‚ค์›Œ๋“œ

DP
์ฃผ์–ด์ง„ 2์ฐจ์› ๋ฐฐ์—ด land๋ฅผ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜ myland์— ๋„ฃ์–ด ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
myland๋Š” ์•ž์œผ๋กœ ์ตœ๋Œ€๊ฐ’์„ ์ €์žฅํ•  ๋ฐฐ์—ด์ด ๋ฉ๋‹ˆ๋‹ค.

for๋ฌธ์€ 1๋ถ€ํ„ฐ land์˜ ์ตœ๋Œ€ ํ–‰๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

for๋ฌธ์˜ i๊ฐ€ 1์ผ ๋•Œ
myland[1][0] ์— myland[0][1],myland[0][2],myland[0][3] ์ค‘ ์ œ์ผ ํฐ ๊ฐ’์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.
myland[1][1] ์—๋Š” myland[0][0],myland[0][2],myland[0][3] ์ค‘ ์ œ์ผ ํฐ ๊ฐ’์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.
์ฆ‰, 1ํ–‰์— ์žˆ๋Š” 4๊ฐœ์˜ ์—ด์— ๊ทธ ์ „ ํ–‰์ธ myland[0]์˜ ๋ณธ์ธ ์ธ๋ฑ์Šค๋ฅผ ์ œ์™ธํ•œ ๊ฐ’ ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ๋”ํ•ด์ค€ ๊ฒ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์ฝ”๋“œ๋Š” 1ํ–‰๋ถ€ํ„ฐ ์ตœ๋Œ€์˜ ๊ฐ’์„ 4์—ด ์ค‘ ํ•˜๋‚˜์— ์ €์žฅํ•ด ๊ฐ€๋ฉฐ
๋ฐ˜๋ณต์ด ์ง„ํ–‰๋˜๋ฉฐ ์ตœ์„ ์˜ ์ตœ๋Œ€๊ฐ’์„ ์ €์žฅํ•ด๊ฐ€๋ฉฐ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰ ํ–‰์—๋Š” 4๊ฐ€์ง€ ๋ฃจํŠธ๋กœ ์ตœ๋Œ€๊ฐ’์„ ๋”ํ•œ ๊ฐ’์ด ์žˆ์„ ๊ฑฐ๊ณ 
๊ทธ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ๋ฝ‘์œผ๋ฉด, ํ•ด๋‹น ๊ฐ’์ด ์ตœ๊ณ ์ ์ด ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ)

์ž…๋ ฅ ๊ฐ’
land = [[4, 3, 2, 1], [2, 2, 2, 1], [6, 6, 6, 4], [8, 7, 6, 5]]

myland๋ณ€์ˆ˜์˜ ๊ฐ’ ๋ณ€ํ™” ๊ณผ์ •
[[4, 3, 2, 1], [5, 6, 6, 5], [6, 6, 6, 4], [8, 7, 6, 5]]
[[4, 3, 2, 1], [5, 6, 6, 5], [12, 12, 12, 10], [8, 7, 6, 5]]
[[4, 3, 2, 1], [5, 6, 6, 5], [12, 12, 12, 10], [20, 19, 18, 17]]