🔗 Problem Link

 

프로그래머스

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

programmers.co.kr


❔Thinking

  • N행 4열로 이루어진 땅을 차례로 내려오며, 각 칸에 적힌 숫자를 더해 최대로 만든다.
  • 직전 행의 열과 같은 열을 선택할 수 없다.

💻 Solution

def solution(land):
    answer = 0
    for i in range(1, len(land)):
        for j in range(len(land[0])):
            land[i][j] += max(land[i-1][:j]+land[i-1][j+1:])
    return max(land[-1])

🗝️ keypoint

  1. 이전 행의 같은 열 값을 제외한 칸들 중 가장 큰 값을 더해간다.
  2. 직전 행의 열만 피하면 되고, max()와 slicing을 통해 해당 행의 최대값을 찾는다.

+ Recent posts