ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋•…๋”ฐ๋จน๊ธฐ(Swift)

2022. 10. 19. 12:28ใ†ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Swift

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋•…๋”ฐ๋จน๊ธฐ(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://school.programmers.co.kr/learn/courses/30/lessons/12913

 

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

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

programmers.co.kr

 

 

 ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

 

DP์œ ํ˜•์— ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ์ง€ DP์ƒ๊ฐ์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค.

 

์ฒ˜์Œ์—๋Š” n์˜ ๋ฒ”์œ„๊ฐ€ 100,000์ด๊ธฐ ๋•Œ๋ฌธ์— ์›ฌ๋งŒํ•˜๋ฉด ํ•œ ๋ฒˆ๋งŒ for๋ฌธ์„ ๊ฑฐ์ณ์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. (์ด์ œ๋Š” DP๋ฅผ ๋– ์˜ฌ๋ ค๋ณด์ž)

 

1 2 3 4

5 6 7 8 ๋กœ ๋˜์–ด์žˆ์„๋•Œ

2๋ฒˆ์งธ ํ–‰์˜ 5๋ฅผ ๋ฐŸ์œผ๋ ค๋ฉด ์ฒซ๋ฒˆ์งธ ํ–‰์˜ 1์„ ์ œ์™ธํ•œ 2, 3, 4 ์ค‘์˜ ์ตœ๋Œ€๊ฐ’์„ ๋ฐŸ์•„์•ผํ•˜๊ณ , 

2๋ฒˆ์งธ ํ–‰์˜ 6์„ ๋ฐŸ์œผ๋ ค๋ฉด ์ฒซ๋ฒˆ์งธ ํ–‰์˜ 2๋ฅผ ์ œ์™ธํ•œ 1, 3, 4 ์ค‘์˜ ์ตœ๋Œ€๊ฐ’์„ ๋ฐŸ์•„์•ผํ•œ๋‹ค.

 

์ฆ‰ ๋‹ค์Œํ–‰์—์„œ ์ „์˜ ์—ด์„ ์ œ์™ธํ•˜๊ณ  ์—ด๋งˆ๋‹ค ๊ฐ’์„ ๋ˆ„์ ์‹œํ‚ค๋ฉด ์ตœ๋Œ€๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๊ฒƒ์€ ์Šค์œ„ํ”„ํŠธ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ max์—๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ธ์ž๊ฐ€ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

import Foundation

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