Search

Delete Greatest Value in Each Row

문제 설명 : 주어진 행렬이 있을 때, 각 행의 최대 값을 하나씩 제거하면서 모든 행 중 최대 값들을 취합하여 반환
풀이 방법
값을 순서대로 비교하기 위해서 sort 처리한다.
이후 각 열의 최대 값을 구한 후, 삭제 처리한다.
시간복잡도 : O(NlogN)O(NlogN)
성공 코드
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
복사