반응형
https://level.goorm.io/exam/195695/%EB%B0%9C%EC%A0%84%EA%B8%B0-2/quiz/1
문제
풀이
from collections import deque
n,k = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(n)]
ans = [0]*(max(set(sum(arr,[])))+1)
dx = [-1,1,0,0]
dy = [0,0,-1,1]
dq = deque()
for i in range(n):
for j in range(n):
if arr[i][j] > 0:
num = arr[i][j]
dq.append((i,j))
arr[i][j] = 0
cnt = 1
while dq:
x,y = dq.pop()
for h in range(len(dx)):
nx = x+dx[h]
ny = y+dy[h]
if 0<=nx<n and 0<=ny<n:
if arr[nx][ny] == num:
dq.append((nx,ny))
arr[nx][ny] = 0
cnt +=1
if cnt >= k :
ans[num] += 1
res = 0
start = ans[0]
for i in range(1,len(ans)):
num = ans[i]
if num >= start:
start = num
res = i
print(res)
1. 전날 문제처럼 DFS로 풀되 ans이란 리스트를 만들어서 해당 단지 번호가 k 개수 이상이면 단지를 카운트하는 방법
반응형
'알고리즘' 카테고리의 다른 글
[구름톤 챌린지] Day 15 - 과일 구매(그리디) (0) | 2023.09.03 |
---|---|
[구름톤 챌린지] Day 14 - 작은 노드(그래프) (0) | 2023.09.03 |
[구름톤 챌린지] Day 12 - 발전기(DFS) (0) | 2023.09.03 |
[구름톤 챌린지] Day 11 - 통증2(동적 프로그래밍) (0) | 2023.09.03 |
[구름톤 챌린지] Day 10 - GameJam(시뮬레이션) (0) | 2023.09.03 |