석유 시추

석유 시추

Prov

세로 n 가로 m인 맵에 시추관을 수직으로 뜷었을 때 가장 많은 석유를 뽑을 수 있는 시추관의 위치

Solv

(0, 0)부터 석유 위치를 조사하다가 석유가 발견될 경우 상하좌우로 탐색을 진행해서 덩어리 클러스터
탐색 시 위치 x, y를 pop하고 석유가 발견되면 push하며 len(dq)가 0이 될 때까지 반복
클러스터를 진행하며 거친 열의 범위 확보
이 때 한 번 방문했던 곳은 다시 방문하지 않아 연산 중복 방지
크기가 mtotal 중 덩어리가 포함된 열의 범위 pos에 덩어리 갯수를 더해서 각 위치별 석유량 누적
석유량이 가장 많이 누적된 위치 선별

Check

map

n=5
m=8
o 표시된 곳이 석유가 있는 곳

 01234567
0   ooo  
1    oo  
2     oo 
3        
4        

cluster 1

sumposdqxy
  [0 3]  
13[0 4]03
23,4[1 4 0 5]04
33,4[0 5 1 5]14
43,4,5[1 5]05
53,4,5[2 5]15
63,4,5,6[2 6]25
73,4,5,6[]26

Ref

https://velog.io/@seungjae/프로그래머스 [PCCP 기출문제] 2번 / 석유 시추 (Python, BFS)


Modified by Sungbin Shim