GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[2주차_금요일] 12913_땅따먹기 #14

Closed baexxbin closed 2 months ago

baexxbin commented 2 months ago
icegosimperson commented 2 months ago

🤔 시간복잡도 고려사항 N <= 100,000, 행렬 크기가 크지 않음 44 O(N 4 * 4) = O(N)

💡 풀이 아이디어 이전 행에서 계산한 값에 의존 : DP

        for(int i=1; i<land.length; i++){
            for(int j=0; j<4; j++){
                int max = 0;
                for(int k=0; k<4; k++){
                    if(k != j) { // 이전 열과 같은 열이 아닐 때
                        max = Math.max(max, land[i-1][k]);
                    }
                }
                land[i][j] += max;
            }
        }
KodaHye commented 2 months ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

baexxbin commented 2 months ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

Jewan1120 commented 2 months ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

yeongleej commented 2 months ago

🤔 시간복잡도 고려사항

bfs,dfs 탐색 시간복잡도가 O(N*E)인 줄알고 시간초과가 나는 이유를 몰랐습니다... 다시보니 N이 충분히 크고 dp로 풀면 될 것 같았습니다

yeahdy commented 2 months ago

🤔 시간복잡도 고려사항 알고리즘: 일반구현 O(n) 시간복잡도: N <= 100,000 크기로 O(NlogN)까지 가능

💡 풀이 아이디어 요구사항은 이전의 행과 같은 열을 밝지 않고, 각 행의 열의 합이 최고점 찾기 이전의 행과 현재의 행을 비교하는데, 이전 행의 열들 중 현재 행과 같은 열을 제외하고 최고점을 찾는다