제이슨의 개발이야기

프로그래머스 땅따먹기 자바 본문

코딩테스트

프로그래머스 땅따먹기 자바

제이쓰은 2021. 9. 3. 21:12
728x90
반응형

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

 

코딩테스트 연습 - 땅따먹기

땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟

programmers.co.kr

 

안녕하세요 

오늘은 땅따먹기 란 문제를 풀어봤습니다

이 문제를 2단계 문제인대 사실 예전에 한번 풀어보려고 했다가 포기 했던 적이 있었던 문제 입니다

 

다시 풀어보려고 도전 했으나 요번에도 넘 어려워서 결국 답지를 보고 다시 공부해서 문제를 풀어봤습니다..ㅠㅠㅠㅠ

아직 공부를 더 열심히 해야겠네요...

 

저는 처음에 각 행 별 max 값을 먼저 찾은 다음에 혹시 인덱스가 연속적인 경우에 다른 max 값을 찾아서 더하면 되지않을까 란 생각을 했지만 이렇게 접근하면 절대 문제를 풀 수 없었습니다

 

그래서 각 행의 요소들을 다음 행의 값들과 더하면서 그 중에 각 요소의 max 값을 찾아 나갔습니다 ....

 

import java.util.*;
class Solution {
    int solution(int[][] land) {
        int answer = 0;

        for(int i = 1 ; i<land.length; i++){

            land[i][0] += Math.max(Math.max(land[i-1][1],land[i-1][2]), land[i-1][3]);
            land[i][1] += Math.max(Math.max(land[i-1][2],land[i-1][0]), land[i-1][3]);
            land[i][2] += Math.max(Math.max(land[i-1][1],land[i-1][0]), land[i-1][3]);
            land[i][3] += Math.max(Math.max(land[i-1][1],land[i-1][0]), land[i-1][2]);
        }
        int [] result = land[land.length-1];
        Arrays.sort(result);
        return result[result.length-1];
    }
}

더 자세하게 설명 드리고 싶은대 설명을 어떻게 해야 할지 모르겠네요.. 분명 머릿속에서는 알고 있는대 이걸 글로 작성하려니...

 

그래서 제가 봤던 블로그 링크를 밑에 달아드리겠습니다! 이 분 설명을 너무 잘하셨더라구요

https://velog.io/@peppermint100/프로그래머스-땅따먹기-in-Java

 

프로그래머스 땅따먹기 in Java

땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟

velog.io

 

728x90
반응형