ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋(Swift)
2022. 10. 18. 14:08ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/87946
๋์ ํ์ด
๋์ ์ ๊ฐ์๊ฐ ์ต๋ 8๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฒด๋ฅผ ํ์ํด๋ ๋๋ค๊ณ ์๊ฐํ๋ค.
์ด๋ฅผ DFS๋ก ๊ตฌํํ๋๋ฐ check๋ฐฐ์ด์ ํตํด์ ๊ฐ๋ ๊ณณ์ ํ์ํ์ง ๋ชปํ๊ฒ ์ค์ ํ๋ค.
import Foundation
func solution(_ k:Int, _ dungeons:[[Int]]) -> Int {
func DFS(_ L: Int, _ leftedHP: Int, _ sum: Int) {
if sum > cnt {
cnt = sum
}
for i in 0..<dungeons.count {
if ch[i] == false {
if leftedHP >= dungeons[i][0] {
ch[i] = true
DFS(L+1, leftedHP-dungeons[i][1], sum+1)
ch[i] = false
}
}
}
}
var cnt = 0
var ch = [Bool](repeating: false, count: dungeons.count)
DFS(0, k, 0)
return cnt
}
๊ธ์ ์ ์ผ๋ฉด์ sum๋ณ์๊ฐ ๊ผญ ํ์ํ์ง์ ๋ํด ์๊ฐํ๊ณ ๊ฒฐ๊ตญ ์ง์ฐ๊ณ ์ด ์ฝ๋์์๋ ๊น์ด๊ฐ ๊ณง ๋ด์ ์ ์๋ ๊ฐ์์ด๊ธฐ ๋๋ฌธ์ L๊ณผ cnt๋ฅผ ๋น๊ตํด์ ๋ต์ ๋ฃ์ด์ฃผ์๋ค.
import Foundation
func solution(_ k:Int, _ dungeons:[[Int]]) -> Int {
func DFS(_ L: Int, _ leftedHP: Int) {
if L > cnt {
cnt = L
}
for i in 0..<dungeons.count {
if ch[i] == false {
if leftedHP >= dungeons[i][0] {
ch[i] = true
DFS(L+1, leftedHP-dungeons[i][1])
ch[i] = false
}
}
}
}
var cnt = 0
var ch = [Bool](repeating: false, count: dungeons.count)
DFS(0, k)
return cnt
}
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋ ๋ฐ๋จน๊ธฐ(Swift) (0) | 2022.10.19 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ์ฆ4๋ธ๋ก(Swift) (0) | 2022.10.18 |
ํ๋ก๊ทธ๋๋จธ์ค - n์ง์ ๊ฒ์(Swift) (0) | 2022.10.18 |
ํ๋ก๊ทธ๋๋จธ์ค - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2022.10.18 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ(Swift) (0) | 2022.10.18 |