https://www.codetree.ai/missions/2/problems/maximin-path-in-square
์ฝ๋ํธ๋ฆฌ | ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ ์
๊ตญ๊ฐ๋ํ๊ฐ ๋ง๋ ์ฝ๋ฉ ๊ณต๋ถ์ ๊ฐ์ด๋๋ถ ์ฝ๋ฉ ์์ด๋ณด๋ถํฐ ๊ฟ์ ์ง์ฅ ์ฝํ ํฉ๊ฒฉ๊น์ง, ๊ตญ๊ฐ๋ํ๊ฐ ์์ ํ ์ปค๋ฆฌํ๋ผ์ผ๋ก ์ค๋นํด๋ณด์ธ์.
www.codetree.ai
์ ์ ์ฌ๊ฐํ ์ต์๊ฐ์ ์ต๋
๋ฌธ์
ํ๋ ฌ์ด ์ฃผ์ด์ก์ ๋, ์์ ์์ํ์ฌ ์ค๋ฅธ์ชฝ ํน์ ๋ฐ์ผ๋ก๋ง ์ด๋ํ์ฌ ๊ฐ๋ค๊ณ ํ์ ๋ ๊ฑฐ์ณ๊ฐ ์์น์ ์ ํ์๋ ์ซ์๋ค ์ค ์ต์๊ฐ์ ์ต๋๋ก ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์ธ์.
์ ๋ ฅ ํ์
์ฒซ์งธ ์ค์๋ ์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ ๊ฐ์ ์ค์ ๊ฐ๊ฐ ๊ฐ ํ์ ํด๋นํ๋ ๊ฐ์ ์ ์ ๊ฐ์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋๋ค.
- ํ๋ ฌ์ ์ฃผ์ด์ง๋ ์ซ์
์ถ๋ ฅ ํ์
๊ฐ๋ฅํ ๊ฒฝ๋ก์ ์ซ์๋ค ์ค ์ต์๊ฐ์ ์ต๋๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
์ ์ถ๋ ฅ ์์
์์ 1
์ ๋ ฅ:
3
5 2 3
3 2 1
1 2 4
์ถ๋ ฅ:
2
์์ 2
์ ๋ ฅ:
3
4 3 2
3 4 5
4 2 8
์ถ๋ ฅ:
3
์์ ์ค๋ช
์ฒซ ๋ฒ์งธ ์์ ์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ํ๋ฉด ์ง๋๋ ๊ฒฝ๋ก์ ์ ํ์๋ ์ซ์๋ค ์ค ์ต์๊ฐ์ด ๊ฐ ๋๋ฉฐ, ๋ ํฌ๊ฒ ๋ต์ ๋ง๋ค ์๊ฐ ์์ต๋๋ค.
์ ํ
์๊ฐ์ ํ: 1000ms
๋ฉ๋ชจ๋ฆฌ ์ ํ: 80MB
ํ์ด
์์์ (0, 0)๊ณผ 0๋ฒ์งธ ์ด๊ณผ ํ์ ์ด๊ธฐํํฉ๋๋ค. 0๋ฒ์งธ ํ์ ์๊ธฐ ์์ ๊ณผ ๋ฐ๋ก ์์ ๊ฐ ์ค ์์ ๊ฐ์ผ๋ก ์ด๊ธฐํํ๊ณ , 0๋ฒ์งธ ์ด์ ์๊ธฐ ์์ ๊ณผ ์ผ์ชฝ์ ๊ฐ ์ค ์์ ๊ฐ์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
(1,1)๋ถํฐ (n-1, n-1)๊น์ง ์ฐ์ฐ์ ์ํํฉ๋๋ค. ์์ ์ ์ผ์ชฝ, ์์ ๊ฐ ์ค ํฐ ๊ฐ๊ณผ ์๊ธฐ ์์ ์ ๋น๊ตํ์ฌ ์์ ๊ฐ์ dp ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
์ต์ข ์ ์ผ๋ก dp[n-1][n-1]์ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
์ ํ์
dp[i][j] = min(max(dp[i-1][j], dp[i][j-1]), arr[i][j])
์ฝ๋
let n = Int(readLine()!)!
var arr = [[Int]]()
var dp = Array(repeating: Array(repeating: 0, count: n), count: n)
var minValue = 0
for _ in 0..<n {
arr.append(readLine()!.split(separator: " ").map{Int(String($0))!})
}
dp[0][0] = arr[0][0]
for i in 1..<n {
dp[i][0] = min(dp[i-1][0], arr[i][0])
}
for j in 1..<n {
dp[0][j] = min(dp[0][j-1], arr[0][j])
}
for i in 1..<n {
for j in 1..<n {
dp[i][j] = min(max(dp[i-1][j], dp[i][j-1]), arr[i][j])
}
}
print(dp[n-1][n-1])
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 3์ฃผ์ฐจ - ์์ ํ์ (0) | 2023.09.25 |
---|---|
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 1์ฃผ์ฐจ - ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต (0) | 2023.09.14 |
[์ฝ๋ํธ๋ฆฌ] ์ฝ๋ํธ๋ฆฌ ๋ธ๋ก๊ทธ ์ฑ๋ฆฐ์ง (0) | 2023.09.12 |
[Swift] Escaping Closure (1) | 2023.05.20 |
[Swift] ๋ฐฑ์ค 1874๋ฒ - ์คํ ์์ด (0) | 2023.03.29 |