Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- HTML์ ๋ฌธ
- ๊ฐ๋ฐ์์ค๋น #์ปดํจํฐ๊ณตํ๊ณผ
- ๋์ ํ ๋น๋ฒ
- ๋ฏธ๊ตญ์ฌํ #๋ฏธ๊ตญ์ ๊ตญ์ฌํ
- 2579
- html #css์ ๋ฌธ #visual studio
- C++
- GitHub
- ๋ฐฑ์ค
Archives
- Today
- Total
๐๊ฐ๋ฐ๊ณผ ์ผ์ (โงโโฆ)๏พ
[๋ฐฑ์ค c++] 1937 ์์ฌ์์ด ํ๋ค (๊ณจ3) ๋ณธ๋ฌธ
์ ํ์ ์ธ ๊ตฌํ ํ์ DFS ์์ต๋๋ค.
// ์์ฌ์์ด ํ๋ค - ๊ตฌํ
#include <iostream>
#include <algorithm>
using namespace std;
int N, result;
int board[501][501];
long long score[501][501];
// ์, ํ, ์ข, ์ฐ ์ค ํ ๊ณณ์ผ๋ก ์ด๋
int dx[4] = {0,0,-1,1};
int dy[4] = {1,-1,0,0};
int DFS(int x, int y){
if(score[x][y] == 0){
score[x][y] =1;
int cnt = 0;
for(int i = 0; i < 4; i++){
int nx = x + dx[i];
int ny = y + dy[i];
if(nx >= 0 && nx < N && ny >= 0 && ny < N){
if(board[nx][ny] > board[x][y]){
cnt = max(cnt, DFS(nx,ny));
}
}
}
score[x][y] += cnt;
}
return score[x][y];
}
int main(){
//n ร n์ ํฌ๊ธฐ์ ๋๋๋ฌด ์ฒ
//๋๋๋ฌด๋ฅผ ๋จน๊ณ ์๋ฆฌ๋ฅผ ์ฎ๊ธฐ๋ฉด ๊ทธ ์ฎ๊ธด ์ง์ญ์ ๊ทธ ์ ์ง์ญ๋ณด๋ค ๋๋๋ฌด๊ฐ ๋ง์ด ์์ด์ผํจ
// ์ด๋ค ์ง์ ์ ์ฒ์์ ํ์ด ๋์์ผ ํ๊ณ , ์ด๋ค ๊ณณ์ผ๋ก ์ด๋์ ์์ผ์ผ ํ๋ค๊ฐ ์ต๋ํ ๋ง์ ์นธ์ ๋ฐฉ๋ฌธํ ์ ์๋์ง
// ์ด ํ๋ค๊ฐ ์ต๋ํ ๋ง์ ์นธ์ ์ด๋ํ๋ ค๋ฉด ์ด๋ค ๊ฒฝ๋ก๋ฅผ ํตํ์ฌ ์์ง์ฌ์ผ ํ๋์ง
cin >> N;
result = -1;
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
cin >> board[i][j];
}
}
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
int temp = DFS(i,j);
if(temp > result) result = temp;
}
}
cout << result << endl;
return 0;
}
'CS > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/C++] ๋คํธ์ํฌ (DFS,BFS - L3) (0) | 2023.11.17 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/C++] ํ๋ก์ธ์ค (์คํ,ํ - L2) (0) | 2023.11.17 |
[๋ฐฑ์ค c++] 1030 ํ๋ ํํ๋ฉด (๊ณจ3) (0) | 2023.10.02 |
[๋ฐฑ์ค c++] 1149 RGB๊ฑฐ๋ฆฌ (์ค1) (0) | 2023.09.25 |
[๋ฐฑ์ค c++] 1105 ํ (์ค1) (0) | 2023.09.25 |