-
[알고리즘] 백준 1388 바닥장판알고리즘 2022. 8. 6. 00:34728x90
문제
접근
1. 바닥 장판은 -- 이거나 | 이 세로로 이뤄져있는지 체크해야한다
2. 각각을 dfs 함수로 수행하며, 체크를 할때 4가지 방향이 아니라 세로냐? 가로냐? 이 두가지만 체크하면된다
3. 2가지 dfs에 대하여 각 개수를 더하고 그 값들을 더하여 주면 된다
풀이
# 가로 세로 n, m = map(int, input().split()) board = [] for i in range(n): board.append(list(map(str, input()))) count = [] resX = 0 resY = 0 def dfsX(x, y): if 0 <= x < n and 0 <= y < m and board[x][y] == '|': board[x][y] = '0' dfsX(x-1, y) dfsX(x+1, y) return True return False def dfsY(x, y): if 0 <= x < n and 0 <= y < m and board[x][y] == '-': board[x][y] = '0' dfsY(x, y-1) dfsY(x, y+1) return True return False for i in range(n): for j in range(m): if dfsX(i, j) == True: resX += 1 for i in range(n): for j in range(m): if dfsY(i, j) == True: resY += 1 print(resX + resY)
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 1245 농장 관리 (0) 2022.08.06 [알고리즘] 백준 1303 전쟁 - 전투 (0) 2022.08.06 [알고리즘] 백준 1926 그림 (0) 2022.08.06 [알고리즘] 프로그래머스 - H-Index (0) 2022.08.03 [알고리즘] 프로그래머스 - 가장 큰 수 (0) 2022.08.03