Skip to content

Latest commit

 

History

History
12 lines (6 loc) · 968 Bytes

827-yongjoonseo.md

File metadata and controls

12 lines (6 loc) · 968 Bytes

827. Making A Large Island

solution 1

시간복잡도 : O(N^2)

알고리즘 : Union-Find, BFS

풀이 설명 : grid가 1인 지점에서 BFS를 시행합니다. 탐색을 하면서 방문처리를 해주고 union연산도 함께 해줍니다. BFS가 실행될 때마다 총 방문한 지점 수를 반환하여 (방문 시작 지점): (총 방문한 지점 수)와 같이 딕셔너리에 저장합니다. grid가 0인 지점은 별도의 리스트에 저장합니다(zeros). 만약 zeros에 요소가 있다면 해당 지점의 위, 아래, 왼쪽, 오른쪽 위치로 find 연산을 해서 서로 다른 섬의 크기를 모두 더해 결과값과 비교하여 더 큰 값으로 갱신하며 zeros 배열을 순회합니다. 순회가 완료되면 최종적으로 갱신된 결과값을 반환합니다. zeros에 요소가 없다면 딕셔너리의 (0, 0) 키에 저장된 값을 반환합니다.

소스코드 : link