강의로 돌아가기
이대현

뭐가 문젠지 봐주세요

그닥오래걸릴것 같진않은데 시간초과뜹니다
뭐 잘못썻나요?

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int length;

int getMax(int col, int row, vector<vector<int> > land) {
    int ret = -1;

    if(row == length) {

        for(int i=0; i<4; i++) {
            if(i != col)
                ret = max(ret, land[row][i]);
        }
        return ret;
    }

    for(int i=0; i<4; i++) {
        if(i != col) {
            int val = land[row][i] + getMax(i, row+1, land);
            ret = max(ret,val);
        }
    }

    return ret;
}

int solution(vector<vector<int> > land)
{
    length = land.size()-1;

    int answer = -1;

    for(int i=0; i<4; i++) {
        int val = land[0][i] + getMax(i, 1, land);

        answer = max(answer, val);
    }


    return answer;
}
1 개의 답변
Demi

안녕하세요. 본 문제 해설은 알고리즘 문제 해설 강의에서 확인하실 수 있습니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.