[프로그래머스] 땅따먹기(C++)

2025. 9. 3. 17:10·개발/알고리즘
728x90

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12913

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

코드 구현

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<vector<int> > land)
{
    int answer = 0;

    int n = land.size();
    int m = land[0].size();


    for (int i = 1; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            int maxNum = 0;
            for (int k = 0; k < m; k++)
            {
                // 이전 행과 같은 열이면 안됨
                if (k != j)
                    maxNum = max(maxNum, land[i - 1][k]);
            }

            // 내려가면서 이전 행의 최댓값을 더한 값으로 갱신
            land[i][j] = land[i][j] + maxNum;
        }
    }

    return *max_element(land[n-1].begin(), land[n-1].end());
}

 

 

해결 방법

첫 번째 행은 건너뛰고 두 번째 행부터 이전 행에서 현재 행과 같은 열이 아닌 수 중 최댓값을 더하여 갱신하면 결국 끝에는 각 경우의 수의 최댓값이 들어가게 된다.

'개발 > 알고리즘' 카테고리의 다른 글

[프로그래머스] 실패율(C++)  (0) 2025.10.28
[프로그래머스] 배달(C++)  (0) 2025.10.27
[프로그래머스] 양과 늑대(C++)  (0) 2025.08.21
[프로그래머스] 최적의 행렬 곱셈(C++)  (0) 2025.07.14
[백준] 2473번: 세 용액(C++)  (1) 2025.07.08
'개발/알고리즘' 카테고리의 다른 글
  • [프로그래머스] 실패율(C++)
  • [프로그래머스] 배달(C++)
  • [프로그래머스] 양과 늑대(C++)
  • [프로그래머스] 최적의 행렬 곱셈(C++)
Majangnan
Majangnan
  • Majangnan
    개발 모코코
    Majangnan
  • 전체
    오늘
    어제
    • 분류 전체보기 (81)
      • 개발 (80)
        • C# (10)
        • SQL (3)
        • Unity (9)
        • Unreal (10)
        • C++ (3)
        • Server (1)
        • DX11 (8)
        • 알고리즘 (35)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 깃허브
  • 링크

    • 백준 허브
  • 공지사항

  • 인기 글

  • 태그

    Unity
    프로그래머스
    블루프린트
    DirectX11
    슈팅게임
    UnReal
    DX11
    MAC
    C#
    sql
    Mecanim
    3dlight
    언리얼
    c++
    백준
    상속
    코딩테스트
    blueprint
    dx3d
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Majangnan
[프로그래머스] 땅따먹기(C++)
상단으로

티스토리툴바