자고일어나니코딩왕
자일코의 CODING
자고일어나니코딩왕
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • [Linux]리눅스 (1)
    • [NETWORK]네트워크 (17)
    • [PS] 알고리즘문제풀이 (16)
    • [SQL] (13)
    • [ALGORITHM]알고리즘개념 (9)
    • [DATA_STRUCTURE]자료구조 (1)
    • [PYTHON]파이썬 (0)
    • [정보처리기사] (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리눅스 #파일시스템 #디렉토리
  • 리눅스
  • virtualbox
  • ssh
  • BIOS #MBR #LILO #Kernel #init
  • 원격접속

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자고일어나니코딩왕

자일코의 CODING

[백준,PS,BFS][PYTHON] #2468 . 안전영역
[PS] 알고리즘문제풀이

[백준,PS,BFS][PYTHON] #2468 . 안전영역

2020. 6. 17. 16:44

from collections import deque
####BFS부분########
def bfs(n,height):
    global num
    num +=1
    while q:      
        dx = [0,0,1,-1]
        dy = [1,-1,0,0]
        x,y = q.popleft()
        count[x][y] = num
      
        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]
            if 0<=nx<n and 0<=ny<n:
                if visited[nx][ny] ==0 and  count[nx][ny] != -1:
                    q.append([nx,ny])
                    count[nx][ny] =num
                    visited[nx][ny] =1 
        
result = []
q = deque()

n = int(input())
maps = [list(map(int,input().split(' '))) for _ in range(n)]
visited = [ [0]*n  for _ in range(n) ]
high =max(map(max, maps))+1 #제일 높은 수면의 높이까지 증가하면서 최댓값을 구해야하기때문에
result = []
for length in range(high): #최대높이 까지 방문하는것

    num = 0
    count =  [ [0]*n  for _ in range(n) ]
    visited = [ [0]*n  for _ in range(n)]
    ##각 수면의 높이별로 BFS시도해야하는 count 이중리스트 생성 ####
    for x in range(n):
        for y in range(n):      
            if maps[x][y] <= length and visited[x][y] == 0:
                count[x][y] = -1

    ####위에서 만든 배열에 BFS를 시도해야하는 부분 ##           
    for a in range(n):        
        for b in range(n):
            if maps[a][b] > length and count[a][b] != -1 and visited[a][b] == 0:
                q.append([a,b])
                visited[a][b] =1
                bfs(n,length)
##높이마다 안전영역개수를 리스트에 넣고 마지막에 최대높이만 구해주면된다#####                
    result.append(max(map(max,count)))
print(max(result))
    


    
    

'[PS] 알고리즘문제풀이' 카테고리의 다른 글

[카카오,PS,UNION-FIND][PYTHON] #호텔방배정  (0) 2020.08.04
[백준,PS,BFS][PYTHON] #2667 . 단지번호붙이기  (1) 2020.06.17
[백준,PS,BFS][PYTHON] #2644 . 촌수계산  (0) 2020.06.16
[백준,PS,BFS][PYTHON] #1012 . 유기농배추  (0) 2020.06.15
[백준,PS,BFS][PYTHON] #2178 . 미로탐색  (0) 2020.06.15
    '[PS] 알고리즘문제풀이' 카테고리의 다른 글
    • [카카오,PS,UNION-FIND][PYTHON] #호텔방배정
    • [백준,PS,BFS][PYTHON] #2667 . 단지번호붙이기
    • [백준,PS,BFS][PYTHON] #2644 . 촌수계산
    • [백준,PS,BFS][PYTHON] #1012 . 유기농배추
    자고일어나니코딩왕
    자고일어나니코딩왕
    열코!

    티스토리툴바