•
문제 설명 : 주어진 행렬이 있을 때, 각 행의 최대 값을 하나씩 제거하면서 모든 행 중 최대 값들을 취합하여 반환
•
풀이 방법
◦
값을 순서대로 비교하기 위해서 sort 처리한다.
◦
이후 각 열의 최대 값을 구한 후, 삭제 처리한다.
•
시간복잡도 :
•
성공 코드
class Solution:
def deleteGreatestValue(self, grid: List[List[int]]) -> int:
result = 0
# 정렬
for i, item in enumerate(grid):
grid[i] = sorted(item)
# 각 열의 최대 값을 확인
while grid[0]:
temp = []
for i, item in enumerate(grid):
temp.append(grid[i].pop())
result += max(temp)
return result
Python
복사
•
while 부분을 더 가독성 있게 처리
class Solution:
def deleteGreatestValue(self, grid: List[List[int]]) -> int:
result = 0
for i, item in enumerate(grid):
grid[i] = sorted(item)
return sum([max(item) for item in zip(*grid)])
Python
복사