[백준/파이썬] 10026번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 10026번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
백준 10026번 문제를 풀이합니다.
코드
`python import sys;read=sys.stdin.readline import collections
n = int(read()) paint = [list(read()[:-1]) for _ in range(n)]
q = collections.deque([]) enQ = q.append deQ = q.popleft
def bfs(): global n, paint area = cnt = 0 visited = [[False]*n for _ in range(n)]
while cnt < n*n:
for i in range(n):
for j in range(n):
if not visited[i][j]:
visited[i][j] = True
enQ((i,j))
cnt += 1
break
if q: break
while q:
i,j = deQ()
color = paint[i][j]
if 0<i and not visited[i-1][j] and paint[i-1][j] == color:
visited[i-1][j] = True
enQ((i-1,j))
cnt += 1
if 0<j and not visited[i][j-1] and paint[i][j-1] == color:
visited[i][j-1] = True
enQ((i,j-1))
cnt += 1
if n-1>i and not visited[i+1][j] and paint[i+1][j] == color:
visited[i+1][j] = True
enQ((i+1,j))
cnt += 1
if n-1>j and not visited[i][j+1] and paint[i][j+1] == color:
visited[i][j+1] = True
enQ((i,j+1))
cnt += 1
area += 1
return area
a=bfs() for i in range(n): for j in range(n): if paint[i][j] == ‘R’: paint[i][j] = ‘G’ print(a, bfs())
```
설명
저장소의 기존 제출 코드를 기준으로 정리한 풀이입니다.
댓글남기기