https://leetcode.com/problems/delete-greatest-value-in-each-row/description/
양의 정수로 구성된 m×n 크기의 행렬 grid가 주어집니다.
grid가 빈 행렬이 될 때까지 다음 작업을 수행합니다:
- 각 행에서 가장 큰 값을 삭제합니다. 여러 개의 동일한 최댓값이 존재하는 경우, 그 중 아무거나 삭제합니다.
- 삭제된 값들 중 가장 큰 값을 정답에 더합니다.
- 이 작업을 반복할 때마다 열의 수가 하나씩 감소합니다.
위의 작업을 모두 수행한 후의 정답을 반환하세요.


풀이
1. grid가 빈 행렬이 될 때까지 작업을 반복
2. 각 while 문에서
- 각 행의 가장 큰 값을 삭제하고, 이 값들을 저장
- 저장된 값들 중 가장 큰 값을 answer에 추가
3. 최종적으로 누적된 answer 값을 반환
class Solution:
def deleteGreatestValue(self, grid: List[List[int]]) -> int:
# answer 변수 0 으로 설정
answer = 0
# while 은 gird 가 비어있지 않고, 첫 번째 행에 요소가 남을때까지 반복
while grid and grid[0]:
# 1 각 행의 가장 큰 값을 삭제하고, 이 값들을 저장
# 삭제된 값 저장 리스트 초기화 - 각 행에서 최대 값을 삭제한 후 이 값을 저장할 리스트를 빈 리스트로 초기화함
# 각 반복마다 초기화시킨다
deleted_values = []
for row in grid:
현재 행의 최대값 찾기
max_val = max(row)
#찾은 최댓값 삭제
row.remove(max_val)
#삭제한 최댓값 deleted_values에 저장
deleted_values.append(max_val)
# 2: 저장된 값들 중 가장 큰 값을 answer에 추가
answer += max(deleted_values)
return answer
2차원 배열에서 for 구문을 쓰면 각 리스트(즉, 각 행)을 하나 씩 가져온다는 사실을 잊지말자.
추가) while 문법
루프 시작 조건: grid가 비어 있지 않고 (grid가 하나 이상의 행을 가지고 있어야 함), 첫 번째 행 (grid[0])이 비어 있지 않은 동안 계속 반복한다. 즉, grid에 삭제할 값이 남아 있는지 확인
while grid and grid[0]:
- grid가 비어 있지 않다.
- grid의 첫 번째 행 (grid[0])이 비어 있지 않다.
while grid:
- 이 조건은 grid가 비어 있지 않음을 확인한다.
- grid가 리스트(혹은 다른 순차형 자료형)인 경우, 리스트가 비어 있으면 False로, 비어 있지 않으면 True가 반환됨
- 예를 들어, grid가 [] (빈 리스트)라면, while grid:는 False가 되어 루프가 종료
while grid[0]:
- 이 조건은 grid의 첫 번째 행([0] 이므로)이 비어 있지 않음을 확인한다
- grid가 2차원 리스트이므로, grid[0]은 grid의 첫 번째 행(리스트)을 나타낸다
- grid[0]이 비어 있지 않으면 True로, 비어 있으면 False 반환
- 예를 들어, grid[0]이 [] (빈 리스트)라면, while grid[0]:는 False가 되어 루프가 종료
결론 : grid가 비어 있지 않고 (grid가 하나 이상의 행을 가지고 있어야 함), 첫 번째 행 (grid[0])이 비어 있지 않은 동안 계속 반복한다. 이는 grid에 삭제할 값이 남아 있을 때까지 루프가 실행됨을 의미한다.
'Algorithm > 릿코드' 카테고리의 다른 글
TIL99클럽 코테 스터디 30일차 2864. Maximum Odd Binary Number (0) | 2024.06.29 |
---|---|
99클럽 코테 스터디 29일차 1337. The K Weakest Rows in a Matrix (0) | 2024.06.27 |
99클럽 코테 스터디 27일차 682. Baseball Game (0) | 2024.06.26 |
99클럽 코테 스터디 26일차 1475. Final Prices With a Special Discount in a Shop (0) | 2024.06.25 |
99클럽 코테 스터디 25일차 933. Number of Recent Calls 최근 요청의 수 (0) | 2024.06.24 |