문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12913
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
땅따먹기 게임을 하려고 한다. 땅은 총 N행 4열인 2차원 배열로 이루어져 있으며,
1행부터 땅을 밟으며 항 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 한다.
단, 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없다.
마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 문제이다.
제한사항
- 행의 개수 N : 100,000 이하의 자연수
- 열의 개수는 4개이고, 땅은 2차원 배열로 주어집니다.
- 점수 : 100 이하의 자연수
풀이
인덱스가 1인 행부터 시작해서, -1의 행의 최대값을 더하고 같은 열을 연속해서 밟을 수 없기 때문에 슬라이싱 하여 열을 제외한 최대값을 더하고, 마지막 행의 최대값을 구했다.
✅ Code - 성공
def solution(land):
for i in range(1, len(land)):
for j in range(4):
max_num = max(land[i - 1][:j] + land[i - 1][j + 1:])
land[i][j] += max_num
return max(land[-1])
'알고리즘 문제 > 프로그래머스_Lv2 도장깨기' 카테고리의 다른 글
[프로그래머스] JadenCase 문자열 만들기 (0) | 2024.01.05 |
---|---|
[프로그래머스] 멀리 뛰기 (Python) (1) | 2024.01.03 |
[프로그래머스] 다음 큰 숫자 (Python) (1) | 2023.12.18 |
[프로그래머스] 가장 큰 정사각형 찾기 (Python) (0) | 2023.12.14 |
[프로그래머스] 올바른 괄호 (Python) (0) | 2023.12.13 |