Link
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 컨테이너
- 실기
- 파이썬딕셔너리
- 태블로
- 파이썬입출력
- 리스트
- 빅분기실기
- 워드클라우드
- dataq
- set시간복잡도
- konlpy
- 파이썬AHP
- 작업형2
- 튜플
- 빅데이터분석기사
- 백준 2164
- 공공빅데이터청년인턴
- 파이썬
- csv병합
- 공빅데기관매칭
- 빅분기
- 2회기출
- 셋
- 백준1920
- 딕셔너리
- 파이썬튜플
- 예측모델링
- 공빅데
- 파이썬셋
- 행별속성합계
- Today
- Total
Data Science
[이코테] p149 - 음료수 얼려먹기 bfs 본문
from collections import deque
def bfs(x, y):
que = deque([(x,y)])
array[x][y] == 1 # array == visited
# print(que)
flag = 0
while que:
x, y = que.popleft()
for dx, dy in vec:
nx, ny = x+dx, y+dy
if nx<0 or nx>=n or ny<0 or ny>=m:
continue
if array[nx][ny] == 0:
# print(nx, ny)
que.append([nx, ny])
array[nx][ny] = 1
flag = 1
return flag
n, m = map(int,input().split())
array = []
for i in range(n):
array.append(list(map(int,input())))
vec = [(0,1),(0,-1),(1,0),(-1,0)]
res = 0
for i in range(n):
for j in range(m):
# print('**', bfs(i, j))
res += bfs(i, j)
print(res)
bfs
교재에선 dfs 로 풀고 있지만 bfs로 풀어보았다.
'알고리즘' 카테고리의 다른 글
[파이썬] 백준 10816: from collections import Counter (0) | 2022.05.19 |
---|---|
[파이썬] 백준 2164 : 리스트는 큐로 이용하면 안된다. (0) | 2022.05.18 |
[파이썬] 백준 1920 : list와 set의 시간복잡도 (0) | 2022.05.18 |
[SWEA] 2005번 파스칼의 삼각형 파이썬(Python) (0) | 2022.05.05 |
파이썬 백준 2908 (0) | 2021.10.06 |
Comments