[99클럽 코테스터디 2기][Python/비기너] 39번째 문제: The K Weakest Rows in a Matrix

최민지·2024년 6월 27일
0
post-thumbnail

오늘의 주제도 힙(Heap)

[The K Weakest Rows in a Matrix]

문제

입력과 출력

코드

class Solution:
    def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:
        heap=[]
        for i,val in enumerate(mat):
            heappush(heap, [val.count(1),i])
        
        temp=0
        result=[]
        for i in range(k):
            temp=heappop(heap)[1]
            result.append(temp)

        return result

[코드 출처]

파이썬 힙정렬에 대해 잘 몰라서 힙정렬 함수로 푼 코드가 있길래 보고 공부했다.! 그래서 출처도 함께 첨부한다!!

알고리즘

이 문제는 1이 가장 적은 수대로 인덱스를 반환해야 하는 문제였다. 그리고 k만큼만 이 인덱스를 출력한다.
그래서 heappush 로 1을 센 값과 인덱스를 함께 heap에 넣어준다.
그리고 heappop으로 k만큼 인덱스를 꺼내어 temp에 담아 result 배열에 넣어주고 이 배열을 반환한다.

Heap

[위키독스]
힙정렬에 대한 내용이 정리되어있다! 나도 이걸 보고 공부했으니 참고할 분들을 위해!🐜🐜🐜

enumerate

이 문제를 풀면서 새롭게 알게 된 함수이다!

[enumerate]

이 블로그를 보고 공부했다!
간단히 설명하자면 순서가 있는 자료형을 입력으로 받았을 때, 인덱스와 값을 포함하여 리턴해주는 함수이다!

매번 이런 순서있는 자료형이 주어졌을 때, i와 j로 반복문을 겹쳐서 돌렸었는데 유용한 함수를 알게된 것같아 내일 비슷한 유형의 문제가 주어진다면 바로 적용해볼 생각이다!

profile
공부..일기....

0개의 댓글