1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <iostream> #include <vector> #define MAXX 100001 using namespace std; int sum[100001][4]; int answer = 0; int max( const int &a, const int &b) { if (a > b) return a; else return b; } int solution(vector<vector< int > > land) { // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. //바로 이전 행에서 밟은 행을 또 밟을 수 없다. int n = land.size(); for ( int i = 0; i < 4; i++) { sum[0][i] = land[0][i]; } for ( int i = 1; i < n; i++) { for ( int j = 0; j < 4; j++) { for ( int k = 0; k < 4; k++) { if (j != k) { //이전에 밟은 칸 빼고 최대값 비교 sum[i][j] = max(sum[i][j], sum[i-1][k] + land[i][j]); } } } } for ( int i = 0; i < 4; i++) answer = max(answer, sum[n-1][i]); return answer; } |
'Programmers > 프로그래머스' 카테고리의 다른 글
[Programmers] 문자열 압축 (0) | 2020.04.04 |
---|---|
[Programmers] 가장 긴 팰린드롬 (0) | 2020.04.03 |
[Programmers] N-Queen (0) | 2020.04.03 |
[Programmers] 방문 길이 (0) | 2020.04.03 |
[Programmers] 종이접기 (0) | 2020.04.03 |