Notice
Recent Posts
Recent Comments
Link
Tags
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋นํธ๋งต
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ์ํฐ๋
- js
- golang
- ์ฌ๊ท
- ์น๋ฆฐ์ด
- ์๊ณ ๋ฆฌ์ฆ
- ํธ๋ฆฌ
- C++
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์นด์นด์ค ์ฝํ
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- Union-Find
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- Python
- DFS
- go
- ์นด์นด์ค2021
- ์์ฝ๋
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ค์ต์คํธ๋ผ
- ๋นํธ๋ง์คํน
- ๋ฐฑ์ค
- BFS
- LCs
- DP
- ์ด๋ถํ์
- nestjs
Archives
- Today
- Total
Hello Ocean! ๐ผ
[๋ฐฑ์ค/C++] 1937. ์์ฌ์์ด ํ๋ค ๋ณธ๋ฌธ
๋ฐ์ํ
๋ฌธ์
ํ์ด
์ ๋ฒ์ ํ์๋ ๋ด๋ฆฌ๋ง๊ธธ ๋ฌธ์ ์ ๋น์ทํ๊ฒ, DFS+DP ๋ฅผ ์ด์ฉํ๋ฉด ํ ์ ์๋ ๋ฌธ์ ์๋ค.
bba-dda.tistory.com/entry/%EB%B0%B1%EC%A4%80C-1520-%EB%82%B4%EB%A6%AC%EB%A7%89-%EA%B8%B8
cache[i][j] : (i,j) ์์น์์ ์์ํ ๊ฒฝ์ฐ ํ๋ค๊ฐ ์ด ์ ์๋ ๋ ์ ์ต๋๊ฐ
์ฆ, DFS ํ์๊ณผ์ ์ค์, ์ด์ ์ ํ์ํ๋ ์ขํ์ ๋ค์ ๋๋ฌํ ๊ฒฝ์ฐ, ๋ค์ ํ์ํ์ง ์๊ณ cache๊ฐ์ ์ด์ฉํด์ ๊ฒฝ๋ก์ ๊ฐ์๋ฅผ ์์๋ด๋ ๊ฒ์ด๋ค.
์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int forest[502][502] = { 0, };
int cache[502][502] = { 0, };
int dc[4] = { 0,0,-1,1 };
int dr[4] = { -1,1,0,0 };
int getMaxLiveDay(int i, int j) {
if (cache[i][j])
return cache[i][j];
cache[i][j] = 1;
for (int d = 0;d < 4;d++) {
int newC = j + dc[d];
int newR = i + dr[d];
if (forest[newR][newC] > forest[i][j]) {
cache[i][j] = max(cache[i][j], getMaxLiveDay(newR, newC)+1);
}
}
return cache[i][j];
}
int main(void) {
int n;
cin >> n;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
cin >> forest[i][j];
}
}
int maxD = 0;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
maxD = max(maxD, getMaxLiveDay(i, j));
}
}
cout << maxD;
return 0;
}
๊ฒฐ๊ณผ
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1915. ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ (0) | 2021.04.14 |
---|---|
[๋ฐฑ์ค/C++] 1916. ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2021.04.14 |
[๋ฐฑ์ค/C++] 1753. ์ต๋จ๊ฒฝ๋ก (0) | 2021.04.06 |
[ํ๋ก๊ทธ๋๋จธ์ค/C++] ๋๋์ง (0) | 2021.03.31 |
[๋ฐฑ์ค/C++] 1005. ACM Craft (0) | 2021.03.24 |