컴공 일기248
게시글 주소: https://i.orbi.kr/00068962554
백준 1937 DP / DFS 융합 문항 풀이
소감 : 본질은 DFS인데, DP의 메모이제이션 기법을 쓰지 않으면 시간 초과가 난다.
탐색 문제들은 제한 시간 + 데이터의 수를 적절히 참조하며 Time Complexity를 따져보는 것이 첫 번째다.
완전 탐색을 해야하는데, 시간이 넉넉하다면 DFS 논리 하나로 가볍게 끌고가도 되지만 데이터 수가 생각보다 많아
제한 시간 내 모든 탐색이 불가능할 것 같으면 DP 냄새를 맡을 줄 알아야 한다.
아니면 더 근본적으로 완전 탐색 상황을 의심해볼 수도 있지만…
대놓고 DFS 였으니 이 부분은 이 문제에서 큰 의미없는 접근이겠다.
#include <iostream>
#include <algorithm>
using namespace std;
// 상 -> 하 -> 좌 -> 우 순으로 DFS 탐색 순서를 정한다.
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
int forest[501][501];
int DP[501][501];
int N; //find_max의 참조를 위해서 전역변수 선언
int find_max(int i, int j) {
if (DP[i][j] > 0) return DP[i][j]; // 메모이제이션
DP[i][j] = 1;
for (int k = 0; k < 4; ++k) {
int next_x = i + dx[k];
int next_y = j + dy[k];
if (0 <= next_x && next_x < N && 0 <= next_y && next_y < N) {
if (forest[i][j] < forest[next_x][next_y]) {
DP[i][j] = max(DP[i][j], find_max(next_x, next_y) + 1);
}
}
}
return DP[i][j];
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int res = -1; // 결과 변수
cin >> N;
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
cin >> forest[i][j];
}
}
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
res = max(res, find_max(i, j));
}
}
cout << res << “\n”;
return 0;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
주중에 2일은 2실모를 하는데.... 양은 이 정도면 충분하겠죠? 추가적으로 뭔갈...
-
책형태로함b4로함?
-
축구는 스피드로 치달하는거 한계가 있는데 미식축구는 스피드가 절반을 차지하는 종목이니 매력있음
-
84 (22는 찍맞이라 제외) 12번 풀다가 대차게 말아먹을 뻔 루트 미치게...
-
ㅇ우우우우웅ㅇ 5
우우우우우
-
생명N제 추천 1
상크스. 올바원. 18모고 끝냈고 리바이벌 풀었어요 실모 전국서바랑 파이널브릿지...
-
예를들어 어떤 연구에서 독립변인이 친밀도이고이를 개념의조작적 정의를 한게 대화시간...
-
아니 근데 나도 씹덕인데 보추는 안 파서 다른 씹덕이라 생각해요
-
어떻게 푼걸 다맞추지 그것도 수능장에서 유리아님은 40분컷하던데.... 다시태어나야 가능한건가?
-
이쁜 보추는 좀 끌리긴해~~
-
수능악귀 빙고 5
-
이로운 이해원 1
실모 이로운이랑 이해원 중에 뭐가 좋나요?? 좀 얻어갈 게 있는 거요
-
대부분 다 그렇던데 남자가 여자보다 덩치도 크고 타고난 뼈대도 굵고 머리나 얼굴도...
-
고3때 정병 개싼거 톡방에 박제당했는데 여기서 복학하기 싫다는 얘기 하면 안되겠다
-
나도 내년엔..
-
리트 풀거 전개년 n회독 중
-
산책 + 턱걸이 하러 갈까 말까… 고민됨
-
수특 수완 4
님들 국어 수특이랑 수완 독서도 해야대여? 문학은 이제 슬슬 시작하려는데
-
평가원 교육청은 1학년때부터 9모까지 백분위 98~100 왔다갔다하는데 사설은...
-
자기장이 면적에 대해 평행하게 형성된거면 자기선속이 0인거죠????
질문 받나요??
남겨주시면 아는 선에서 답해드리겠습니다.
컴공에서 나이 많은 사람 몇살까지 보셨나요??
개인플레이가 지배적인 분위기라… 나이를 잘 모릅니다만 남자의 경우 26-28에 졸업하는 경우가 보편적이라고 생각은 합니다.