반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 학습 자동 중단
- GPT-3
- 과적합
- 밑시딥2
- 딥페이크
- ESG 채권
- andoriod with kotlin
- 안드로이드 구조
- gradiant descent
- nlp
- 예측선
- 선형회귀
- k겹 교차검증
- 모두의 딥러닝
- 경제신문스크랩
- 면접왕 이형
- 밑바닥부터 시작하는 딥러닝
- 면접왕이형
- 로지스틱 회귀법
- 밑시딥
- 경사하강법
- 코틀린
- 독서 #독서후기 #피로사회 #행동과잉 #긍정과잉
- 뉴로 심볼릭
- ESG
- 베스트 모델
- 안드로이드
- 보이스피싱
- MRC
- 다중분류
Archives
- Today
- Total
Practice makes perfect!
[백준] 1303 전쟁 - python 본문
- 문제 링크 : https://www.acmicpc.net/problem/1303
- 접근 방법 : 인접한 병사들의 수를 세는 것이 목적이다. 현재 위치에서 모든 노드를 탐색할 필요없이 인접한 우리 병사의 수만 세면 되므로 BFS를 사용하였다.
from collections import deque
m, n = map(int, input().split())
graph = [list(input()) for _ in range(n)]
dx = [1,-1,0,0]
dy = [0,0,1,-1]
W, B = 0, 0
visited = [[0]*m for _ in range(n)]
q = deque()
def bfs(x,y):
q.append((x,y))
visited[x][y] = 1
cnt = 1
while q:
x, y = q.popleft()
# 상하좌우에 있는 병사가 아군인지 확인
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if 0<=nx<n and 0<=ny<m and visited[nx][ny]==0 and graph[x][y] == graph[nx][ny]:
q.append((nx,ny))
visited[nx][ny] = 1
cnt += 1
return cnt
for a in range(n):
for b in range(m):
if visited[a][b] == 0:
answer = bfs(a,b)
if graph[a][b] == 'W': W += answer ** 2
else: B += answer ** 2
print(W,B)
반응형
'Coding test > BFS&DFS' 카테고리의 다른 글
[백준] 2606 바이러스 - python (0) | 2022.01.07 |
---|---|
[백준] 2178 미로 탐색 - python (0) | 2021.06.26 |
BFS & DFS 문제 구분 (0) | 2021.06.26 |
Comments