상세 컨텐츠

본문 제목

99클럽 코테 스터디 23일차 TIL + 오늘의 학습 키워드 : 힙

본문

728x90
반응형

leetcode 2500번 문제
"Delete Greatest Value in Each Row"는 다차원 배열에서 각 행의 최대값을 삭제하고 그 최대값의 합을 구하는 문제입니다. 

 
문제 이해
주어진 m x n 행렬 grid에서 각 행의 최대값을 삭제합니다.
삭제된 최대값의 합을 구합니다.
각 삭제 후 행의 크기가 줄어들기 때문에, 반복적으로 최대값을 찾아야 합니다.
올바른 해결 방법
이 문제를 해결하기 위해서는 다음과 같은 단계로 접근할 수 있습니다:

행 정렬: 각 행을 정렬하여 최대값을 쉽게 찾을 수 있도록 합니다.
최대값 합산: 각 열에서 최대값을 찾아 합산합니다.

class Solution:
    def deleteGreatestValue(self, grid: List[List[int]]) -> int:
        # 각 행을 정렬
        for row in grid:
            row.sort()
        
        # 각 열의 최대값을 합산
        max_sum = 0
        for j in range(len(grid[0])):
            max_value = 0
            for i in range(len(grid)):
                max_value = max(max_value, grid[i][j])
            max_sum += max_value
        
        return max_sum

코드 설명
행 정렬: row.sort()를 통해 각 행을 오름차순으로 정렬합니다.
최대값 찾기: 이중 루프를 사용하여 각 열의 최대값을 찾습니다.
외부 루프는 열을 순회하고, 내부 루프는 각 행을 순회하여 최대값을 업데이트합니다.
합산: 각 열에서 찾은 최대값을 max_sum에 더합니다.

728x90
반응형

관련글 더보기