[그 외]/ㄴ (코테연습 : 파이썬 ver)
[프로그래머스] 땅따먹기 (파이썬)
__hyeon2__
2021. 7. 4. 21:41
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12913
코딩테스트 연습 - 땅따먹기
땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟
programmers.co.kr
<나의 풀이>
def solution(land):
for i in range(1, len(land)):
for j in range(len(land[0])):
# 1. max(land[i -1][: j] + land[i - 1][j + 1:])
# ㄴ이전 리스트에서 현재 인덱스 부분만 제외하고 최대값 구하기
# 2. + land[i][j]
# ㄴ위에서 구한 최대값을 현재 인덱스의 요소와 더하기
# 3. land[i][j]
# ㄴ 더해준 값을 현재 리스트 인덱스의 값으로 변경
land[i][j] = max(land[i -1][: j] + land[i - 1][j + 1:]) + land[i][j]
# land의 마지막 리스트에서 최대값을 출력
return max(land[-1])
<다른 사람의 풀이>
import copy
def hopscotch(board, size):
result = 0
# 땅따먹기 게임으로 얻을 수 있는 최대 점수는?
for i in range(1,size):
for j in range(4):
temp = copy.deepcopy(board[i-1])
temp[j] = 0
board[i][j]+=max(temp)
result = max(board[-1])
return result
# <배운점>
# => deepcopy를 이용해서 문제를 푼 점
728x90
반응형