컴공 일기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를 선물하세요.
-
보여주세요 재호햄
-
으으!!!
-
화학같은 고능아집단에서 살아남을수없다
-
시간 없어서 다 풀진 못하겠고 N티켓 종합마무리 부분만 겁나 반복해서 풀고 갈...
-
불지를꺼는 알겠는데 서바 강케이급으로 내면 눈물나올것같아 ㅠㅠ 사설 볼때마다 현타...
-
뒷북)헬스터디 뭐임 11
수학 진짜뭐임 저게 1년만에됨??
-
맘터는 좀 멀어여
-
지1 특 0
실력 좀 오른 8~10월 중순까진 재밌다가 수능 다가오면 미친듯이 쫄림
-
밖에 나옴 1
뭐 먹을까여
-
살면서 1
흑역사가 되게 많은 1인... 빌런으로써 날 마주한 그분들께는 죄송할 따름이지만,...
-
저도 언매 질문 12
누가 올려달래서 대신 올려줌 빨간색을 명사절->주어로 보는 게 정배인데 왜 파란색을...
-
아침에 아인슈페너 한 잔 마셨는데 잠이 아예 안 온다…
-
. 2
잘자..
-
오르비는 차갑다 0
적응 안되네 맞팔하실 분?
-
외로워 1
친구해조
-
사문 1받기 7
도표 m스킬 다 듣고 ㅈㄴ 풀고 모고 하루에 하나씩하고 오답모아서 맨날 보면 안정1...
-
파리같이 생겼어 ㅠ
-
그동안 사설에서 본거 많이 보이네 금방 다 할수 있을듯 오늘본거중에 계약 파기론,...
-
11월이다 2
헉;;
-
아 치킨먹고시포 2
먹고올까
-
난이도 쉬운거임? 2회 45 나왔는데.. 이정도면 몇등급뜸?
-
고2 경화 ㅇㅈ 1
빠른 사탐런---->백분위 99 화학은 ㅁㄹ? 화2런 할까 이대로 내년까지 ㄱㄱ
-
이해원 파이널
-
가장 점수 잘 나오는게 정말 사실인가... 왜 개념 기출 금방 끝냈을 때보다 지금이...
-
11월… 1
이젠 뭘해도 소용없을 것 같은…
-
제가 국어때문에 대학교를 못가게 생겼는데… 도와주세요ㅠㅠ 제가 국어제외하고는...
-
아니지 어느 과목도 우수한 성적을 받을 수 없는 내가 밉다
-
이거 고3 커리랑 똑같은건가요?
-
성적 차이 어느정도 나나요? 평백 기준 3-4?
-
.
-
대학교 졸업할 때 쯤..
-
저 이기실분 5
소프트웨어변형없습니다. 저보다 불쌍한 삶이면 들어드릴게요
-
안녕하세요 고등학교 2학년 학생입니다. 저는 중학교때까지는 학우들과 잘 어울리고...
-
ㅇㅈ 1
전교7등
-
일등급의 기운이 마구마구
-
지듣노 5
-
대성 슨생님분들 중에 삼각함수 잘 가르치시는 분 누가 계시나여ㅜ
-
무료나눔컨텐츠때메 그런가??
-
안녕하세요 0
https://orbi.kr/00069701991 지나가다 댓글 좀 남겨주세요
-
방인혁 빅뱅모 1,2,3,4 다 풀어봄 난이도는 4<3<2=1순인듯요 배워갈 문항...
-
혜윰 2-3 0
틀 독서 7번 , 14번 문학 19번 20번 22번 23번 매체 43번 매체 43번...
-
+진학사
-
고대 로스쿨생이 11
로스쿨 다니면서 결혼하는 사람 많댔음... 글고 나이들고 연애 많이 하면 이전...
-
45 노려야겠다 3페까지 다 맞추고 4페 3점하나 골라풀고 2개찍기
-
N+1생각.. 아
-
저보다많으시네요
-
ㅈㄱㄴ
-
얼버잠 2
내일도 ㅎㅇㅌ
-
할짓 드럽게 없네 나 자러갈게요 ㅠ
질문 받나요??
남겨주시면 아는 선에서 답해드리겠습니다.
컴공에서 나이 많은 사람 몇살까지 보셨나요??
개인플레이가 지배적인 분위기라… 나이를 잘 모릅니다만 남자의 경우 26-28에 졸업하는 경우가 보편적이라고 생각은 합니다.