0406 Today I Learn
์ค๋์ ์ฌ์ค Django๋ฅผ ๋ฐฐ์ ๋๋ฐ ๋ฐฐ์ด๊ฒ ๋๋ฌด ๋ง์์ ์ ๋ฆฌํ๊ธฐ๊ฐ ์ ๋งคํด ์ผ๋จ ๋ฌธ์ ํ์ด์ ๋ํ TIL์ ์ฌ๋ฆฌ๊ธฐ๋ก ํ๋ค. ๋ด์ผ ๋ค์ ์ค์ตํ๋ฉด์ Django๋ ์ด๋ ค์ ๋ ๋ถ๋ถ์ ๋ํด ๋ฐ๋ก ์ ๋ฆฌํด์ ์ฌ๋ ค์ผ๊ฒ ๋ค.
์ค๋์ Aํ ๋๋น๋ฅผ ์ํ ํน๊ฐ์ ์ํด SWEA๋ฌธ์ 1๊ฐ๋ฅผ ํ์๋ค.BFS๋ฅผ ์ด์ฉํ ๋ฌธ์ ์ธ๋ฐ, ์ฌ์ค ๋ ์งง์ ์ฝ๋๋ก ์ต์ ํ ๊ฐ๋ฅํด ๋ณด์ธ๋ค.
๋ฌธ์ ๋งํฌ
๋์ ํ์ด
from collections import deque
T = int(input())
for tc in range(1,T+1):
N,M = map(int,input().split())
arr=[list(input()) for _ in range(N)]
a_visit = [[0]*M for _ in range(N)]
b_visit = [[0]*M for _ in range(N)]
a_cnt,b_cnt=0,0
a_max,b_max=0,0
def a_bfs(y,x):
global a_max
q = deque()
q.append((y,x))
cnt=1
while q:
ny,nx = q.popleft()
directy=[-1,1,0,0]
directx=[0,0,-1,1]
for i in range(4):
dy=directy[i]+ny
dx=directx[i]+nx
if 0<=dy<N and 0<=dx<M:
if arr[dy][dx]!='A': continue
if a_visit[dy][dx]!=0:continue
a_visit[dy][dx]=1
cnt+=1
q.append((dy,dx))
if a_max<cnt:
a_max=cnt
def b_bfs(y,x):
global b_max
q = deque()
q.append((y,x))
cnt=1
while q:
ny,nx = q.popleft()
directy=[-1,1,0,0]
directx=[0,0,-1,1]
for i in range(4):
dy=directy[i]+ny
dx=directx[i]+nx
if 0<=dy<N and 0<=dx<M:
if arr[dy][dx]!='B': continue
if b_visit[dy][dx]!=0:continue
b_visit[dy][dx]=1
cnt+=1
q.append((dy,dx))
if b_max<cnt:
b_max=cnt
for i in range(N):
for j in range(M):
if arr[i][j] == 'A' and a_visit[i][j] == 0:
a_cnt+=1
a_visit[i][j]=1
a_bfs(i,j)
if arr[i][j] == 'B' and b_visit[i][j]==0:
b_cnt+=1
b_visit[i][j]=1
b_bfs(i,j)
answer=max(a_max,b_max)
print(f'#{tc} {a_cnt} {b_cnt} {answer}')
์ ๋ต
'A'๋ฅผ ๋ฐ๊ฒฌํ์ ๋ ๋ฐฉ๋ฌธํ์ง ์์ ๊ณณ์ด๋ผ๋ฉด BFS๋ฅผ ๋๋ ค์ฃผ๋ ๊ฒ์ด๋ค.
์ด ๋ a_cnt+1์ ๊ฐ์ฒด์ ์๋ฅผ ์๋ฏธํ๋ค.
BFS๋ฅผ ํ๋ฉด์ cntํด์ฃผ๋ ๊ฒ์ ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ์ธ๋ ๊ฒ์ผ๋ก max๊ฐ์ ๊ฐฑ์ ํด ์ต๋ ํฌ๊ธฐ๋ฅผ ๊ตฌํด์ฃผ์๋ค.
'B'๋ฅผ ๋ฐ๊ฒฌํ์ ๋๋ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ ๊ตฌํด์ค๋ค.
์ถ๋ ฅ์์๋ a์ ๊ฐ์ฒด์์ b์ ๊ฐ์ฒด์ ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ํฐ ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅํด์ผํ๋๋ฐ, maxํจ์๋ฅผ ์ด์ฉํด a์ ์ต๋ ํฌ๊ธฐ์ b์ ์ต๋ ํฌ๊ธฐ๋ฅผ ๋น๊ตํด answer๋ก ์ถ๋ ฅํด ์ฃผ์๋ค.
'๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.11.์ (0) | 2022.04.11 |
---|---|
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.08.๊ธ (0) | 2022.04.08 |
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.05.ํ (0) | 2022.04.06 |
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.04.์ (0) | 2022.04.04 |
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.03.31.๋ชฉ (0) | 2022.03.31 |
๋๊ธ