[프로그래머스] Lv.2 땅따먹기 (Java)

2023. 6. 29. 10:59·Algorithms(CT)/Programmers

문제 링크

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

💡 아이디어

0행부터 자신의 행 이전까지의 최대합을 구하면서 마지막 행까지 모든 열의 최대합을 구하려고 합니다.

 

예시로 설명하겠습니다.

1. 0행은 이전 행의 값이 없으므로 그대로 둡니다.

1 2 3 5
5 6 7 8
4 3 2 1

 

2. 1행은 이전 행 값에서 자신의 열을 제외한 값들 중 가장 큰값을 가져와 자신의 값과 합칩니다.

1행 0열 : [1,2,3,5] 에서 가장 큰 수인 5를 가져와 자신의 값과 합친다.

1행 1열 : [1,2,3,5] 에서 가장 큰 수인 5를 가져와 자신의 값과 합친다.

1행 2열 : [1,2,3,5] 에서 가장 큰 수인 5를 가져와 자신의 값과 합친다.

1행 3열 : [1,2,3,5] 에서 가장 큰 수인 3를 가져와 자신의 값과 합친다.

1 2 3 5
5 + 5 = 10 6 + 5 = 11 7 + 5 = 12 8 + 3 = 11
4 3 2 1

 

3. 2행도 이전 과정과 마찬가지로 이전 행에서 자신의 열을 제외한 가장 큰 값을 가져와 자신의 값과 합친다.

1 2 3 5
5 6 7 8
4 + 12 = 16 3 + 12 = 15 2 + 11 = 13 1 + 12 = 13

 

4. 마지막 행에서 가장 큰 값을 return합니다.


전체 코드

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

        int max=0; // 최고점
        for(int i=1;i<land.length;i++){
            for(int j=0;j<4;j++){
                int iMax=0; // (i-1)행에서 같은 열이 아닌 값 중에 가장 큰 값.
                
                if(j!=0) iMax=Math.max(iMax,land[i-1][0]);
                if(j!=1) iMax=Math.max(iMax,land[i-1][1]);
                if(j!=2) iMax=Math.max(iMax,land[i-1][2]);
                if(j!=3) iMax=Math.max(iMax,land[i-1][3]);
                
                land[i][j]+=iMax; // 자기자신의 값 + 이전 열의 가장 큰 값
                
                if(i==land.length-1 && land[i][j]>max) max=land[i][j];
            }
        }
        return max;
    }
}

'Algorithms(CT) > Programmers' 카테고리의 다른 글

[프로그래머스] Lv.2 스킬트리  (0) 2023.06.29
[프로그래머스] Lv.2 방문 길이 (Java)  (0) 2023.06.29
[프로그래머스] Lv.3 순위 (Java)  (0) 2023.06.27
[프로그래머스] Lv.4 징검다리 (Java)  (0) 2023.06.26
[Java] Lv.2 N진수 게임  (0) 2023.06.24
'Algorithms(CT)/Programmers' 카테고리의 다른 글
  • [프로그래머스] Lv.2 스킬트리
  • [프로그래머스] Lv.2 방문 길이 (Java)
  • [프로그래머스] Lv.3 순위 (Java)
  • [프로그래머스] Lv.4 징검다리 (Java)
gwee_99
gwee_99
bE bETTER!
  • gwee_99
    얼렁이와 뚱땅이
    gwee_99
  • 전체
    오늘
    어제
    • ====Category====
      • Algorithms(CT)
        • Programmers
        • Baekjoon
        • Goorm
      • Web
        • Error 해결
      • BackEnd
        • Spring
        • JPA
      • FrontEnd
        • HTML.CSS
        • JavaScript
      • Language
        • Java
      • Cloud
      • CSTS
      • Books
        • IT 5분 잡학사전
      • 일상
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    LV.2
    HTML
    lv2
    코딩테스트
    구름톤 챌린지
    LV.3
    DFS
    BFS
    노마드코더
    IT 5분 잡학사전
    Til
    프로그래머스
    Lv.1
    DP
    그리디
    IT 잡학사전
    따라하며 배우는 html css
    호텔 대실
    자바
    Greedy
    스택
    구름
    BOJ
    존안님
    제대로 파는 자바스크립트
    인프런
    백준
    개발자북클럽
    lv.4
    java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gwee_99
[프로그래머스] Lv.2 땅따먹기 (Java)
상단으로

티스토리툴바