강의로 돌아가기
변지협

bfs 효율성 테스트 실패

시간복잡도 어떻게 줄이나요?

작성중인 코드―solution.py
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
32
from collections import deque

def solution(land):
    answer = []

    n, m = len(land[0]), len(land)
    directions = {'up': (0,-1), 'down':(0,1), 'right':(1,0), 'left':(-1,0)}

    for i in range(n):
        temp_answer = 0
        visited = [[False for i in range(n)] for j in range(m)]
        queue = deque()
        for j in range(m):
            # 초기값 설정
            if land[j][i] == 1 and not visited[j][i]:
                visited[j][i] = True
                temp_answer +=1
                queue.append((i,j))

            # bfs
            while queue:
                x,y = queue.popleft()
                for key, value in directions.items():
                    dx, dy = value
                    if 0 <= x+dx < n and 0 <= y+dy < m and land[y+dy][x+dx] == 1 and not visited[y+dy][x+dx]:
                        temp_answer +=1
                        visited[y+dy][x+dx] = True
                        queue.append((x+dx, y+dy))

        answer.append(temp_answer)

    return max(answer)
  • betaa0528@gmail.com

    이미 탐색을 한 기름의 면적을 따로 저장해놨다가 사용하는 방법을 생각해보세요

    betaa0528@gmail.com―2024.09.03 17:16
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.