컴공 일기248
게시글 주소: https://ys.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를 선물하세요.
-
ㅇㅈ 5
핼창 호소인
-
순조로운 과제 진행 16
-
허준 현대소설 저만 뭔소리하는지 모르겠음?? 특히 중략 이후 나오는 문단 자체가...
-
ㅠㅡㅠ 일찍 일어나자 파이팅
-
그때 못해서 재수강하는 건데 지금 다시 하니까 너무 쉬워 확실히 더 어려운 과목으로...
-
나놀아주어서고마워(내가놀아주는거지만) 나도.맨날말안예쁘게하고 머라고하고...
-
두렵다
-
벌써 새벽이 되었구나
-
오늘 라이스 킥 미쳤음 ㄹㅇㅋㅋㅋㅋㅋ
-
내년도 휴학하나요 ?
-
올해로써 입시는 걍 영원히 빠빠이 할듯 반수하면서 스트레스때문에 내 몸이 망가지고...
-
이멀젼씨다 9
머리에 이큰걸 어케 집어넣어 오고곡
-
???: 어? 오르비에 모의고사 무료배포 올라왔네 빨리 풀어봐야지 -- 풀고 난...
-
우울해서 잠도 안오고 근데 이제 수학 마킹연습해야겠다 수학만은 걍 시간도 많이남아서 딱히 안했었는데
-
저폼의 기인에게 뽀뽀로 막앗다ㅔ
-
그냥 쵸비가 시에스 정글 옵젝 다 몰아먹고 과성장하는 전략으로다가 미드 1인 로스터 구성 ㄱㄱㄱㄱ
-
뱃지 다신 분들 12
다 부러워요ㅠㅠㅠㅠㅠ 볼때마다 존경스럽니다 저도 꼭 달고 싶네요....
-
아무리 생각해도 롤드컵이 쵸비에게 기울어진 운동장인거 같다 5
라이엇은 시에스많이먹기대회 를 윈터 시즌에 개최할 것.
-
조졋네이거
-
우리 애가 어릴 때는 영재였는데....
-
강의자료 한 과씩 클리어할 때마다 오르비 들어와야겠다 1
옯 때문에 집중이 안 되네..
-
결국 증명했네 승부욕 강한 사람이 결국에는 이김
-
쉽지 않네 ㅋㅋㅋㅋ
-
2월에 입대해서 군수 할 생각인데 그전에 개념은 끝내놓고 가려고 하는뎁요 생윤 사문...
-
다행히 2시전에 자네
-
잘 수 있나 3
도파민땜에 심장이 너무 뜀 오늘 잘 수 있는거겠지
-
인증 6
사실 민증나와서 기분좋음
-
감정적으로 너무 힘들다
-
ㄹㅈㄷ
-
빠듯하네 1
할수있겠져 그져
-
캬캬캬캬컄캬캬
-
ㅇㅈ 2
ㅇㅈ
-
약대가능? 0
화작98 미적97 영어2 화학89 생명97
-
여운이 안가신다 0
작년우승때도 이정도는 아니였는데
-
국민 눈치 ㅈㄴ 보는 대통령 눈치 ㅈ도 안보는 대통령
-
걍 티원 응원이나 해야지
-
사문러로서 당신 덕분에 ㅈ같은 성비 문제 더 이상 공부하지 않아도 돼요 ❤️ 요즘...
-
오늘 뽀삐는 그냥 모든 가능세계의 뽀삐중 최고수준의 뽀삐였음 4밴 크샨테가 진짜...
-
아닌가 또이또이한가
-
그런걸 사버린 것 같은데..
-
첫 살자시도(강창교 다리위 다이빙시도) 지나가던 시민분 신고 두번째도 동일 세번째...
-
미코토 별명이 모기업 이름인 팀 vs 티원이넹
-
헤으응 1
-
승자여야 하는데.. 그 시간에 공부를 거의 안 했어.. 롤경기 보는 학생들 편의에...
-
배준식은 진짜 세금 30배 내라
질문 받나요??
남겨주시면 아는 선에서 답해드리겠습니다.
컴공에서 나이 많은 사람 몇살까지 보셨나요??
개인플레이가 지배적인 분위기라… 나이를 잘 모릅니다만 남자의 경우 26-28에 졸업하는 경우가 보편적이라고 생각은 합니다.