[algorithm] 조건문이 복잡할때..

준환·2022년 4월 25일
2

https://www.acmicpc.net/problem/21609

이 문제 풀때, 환우가 알려준 방법

크기가 가장 큰 블록 그룹을 찾는다. 그러한 블록 그룹이 여러 개라면 포함된 무지개 블록의 수가 가장 많은 블록 그룹, 그러한 블록도 여러개라면 기준 블록의 행이 가장 큰 것을, 그것도 여러개이면 열이 가장 큰 것을 찾는다.

이렇게 복잡한 조건문을 if문으로 하면

이렇게 될 수도 있다..
heapq를 이용해보자.

for i in range(N):
        for j in range(N):
            if board[i][j] > 0:
                a, b, [y, x] = bfs(i, j)
                heapq.heappush(h, [-a, -b, -y, -x])

굉장히 간단하지만 파워풀한 방법이다!!!!!!!
2개정도라면 if문으로 해결할 수 있겠지만 저런건 힙큐를 애용해보자 애용애용~

0개의 댓글