컴공 일기248
백준 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를 선물하세요.
-
해안측량 1
-
고려사 1
-
아쉽네
-
연락주세요 수령비 만오천원 택배비오천원 드립니다
-
본인 1식으로 치킨 냉동피자 햄버거 <-요런거 먹었는데도 3키로 빠짐
-
뭐해야됨? 마지막으로(?) 할 거 추천 부탁드립니다 기출은 최근껀 다 풀었고 어려운...
-
삼정은 3
-
어제넣은 에피가 수능끝나야 달리기때문
-
문제 설정 A 지층에서는 역단층으로 인해 깊이에 따른 지층의 연령에서 1천만년...
-
대성학원갤보니까 1
무슨 미적 보정 1컷이 89고 언매 보정 1컷이 93이라는데 진짠가??? 그렇게 쉬웟다고???
-
11덮 수학 0
-15 28 30 15번 사차함수에 y=x 그리다 멸망…
-
언미생지임 국어는 6모 때 2찍고 하락세에서 안돌아오는중 1년 더 해야하나 죽고싶ㄷ
-
이게 삶이지
-
님들 키 몇임 35
전 165
-
요즌은 해외취업하고싶음...
-
난이도 어땠나요 2컷은 얼마정도로 잡힐까요..ㅠㅠ
-
실모 점수들 어지간하게 나오는중이라 감 유지하면 지금 학교보단 조금 더 높게...
-
이퀄 0
화작 -88 확통 -80 영어 -91 생윤- 50 사문 47 이정도면 라인 어디...
-
저는 갱생불가능한 개버러지폐급인간쓰레기폐기물입니다ㅐ
-
박지원 실학 3
-
애니 속 공부장면 14
무슨 과목인지 맞추면 500덕
-
나요.
-
최저런데 생윤 너무 하기 싫어서 미루고 미루고 미루고 미루다 10월 말에 림잇...
-
음
-
실학 1
-
동의하지? 4
동의했냐
-
영롱한 보라색 이름을 갖고싶구나...
-
그 노무현도 지선을 말아먹어서 그렇지 총선은 이겼는데 노무현 정부 4년차 지지율...
-
다 맞긴 했는데 체감 난이도 10월이랑 비슷? 그이상? 이었음... 손가락 몇개를...
-
https://orbi.kr/00069699024/%EC%9D%BC%EB%B3%B8%...
-
11덮 외부응시 학원 못찾아서 11이퀄모고 봣는데 수능 2주전에 이 귀중한 시간에...
-
맥락이 장수산 속 겨울 한밤에 시름 견디겠다는 시인데 “깊은 산 고요가 차라리 뼈를...
-
지능의 한계 4
공통도 못하는 저능아 ㅈㅈ
-
세계지도한국사 1
-
제발 우제야 해줘 상혁이형이 반반가고 우제가 빈 막으면 할만하다 진짜
-
골라주시는 치킨 한 마리 보내드리거나 원하시는상품권 드릴게요 쪽지주세요!!!!
-
뭐야
-
빨리 글을 난사하도록.
-
에휴이 수학 0
고작 수열인데 다 맞기 더럽게 힘드네요
-
발x해 2
-
이번꺼 왤케 별로일것같냐
-
되나요?? 그냥 사설 실모에서 약점 계속확인하고 어떻게 고쳐야할지도 모르겠고(계속...
-
올해 물리 실모 난이도 대체적으로 어떤 편인가요? 배모 특모 등등 이상하게 작년보다...
-
ㅌㅌ 13일도 파이팅하세요 잘 치면 돌아오겠습니다 절평은 둘 다 1등급이에요
-
솔직히 나가는거 알바아닌데 관심있던 애가 나가는건 좀 충격이네 이럴줄 알았으면...
-
아몰라 0
국수영생윤한지 33334이면 어디가..? 하 ㅠㅠ 모르겠다 ㅠㅠ
-
지거국인데 타지생활이 너무 불편하고 힘들어서 시작한 반수인데 왤케 불안하고...
-
그냥 예상값인가요?? 좀 많이 낮아서요
질문 받나요??
남겨주시면 아는 선에서 답해드리겠습니다.
컴공에서 나이 많은 사람 몇살까지 보셨나요??
개인플레이가 지배적인 분위기라… 나이를 잘 모릅니다만 남자의 경우 26-28에 졸업하는 경우가 보편적이라고 생각은 합니다.