[Boj문제풀이]

[Boj/백준] 14716 Python

ki7348 2021. 9. 21. 14:48

문제출처: https://www.acmicpc.net/problem/14716

 

14716번: 현수막

혁진이의 생각대로 프로그램을 구현했을 때, 현수막에서 글자의 개수가 몇 개인지 출력하여라.

www.acmicpc.net

 

 

1. 문제 접근 방식

여느 dfs 문제처럼 풀되 대각선도 가능함으로 dx와 dy를 8개씩 적어준다.

 

 

2. 내가 푼 코드

import sys
sys.setrecursionlimit(100000)

dx = [-1, -1, -1, 0, 0, 1, 1, 1]
dy = [0, -1, 1, -1, 1, -1, 0, 1]

def dfs(x,y):
    if x<0 or x>=n or y<0 or y>=m:
        return False
    if graph[x][y] == 1:
        graph[x][y] = 0
        for i in range(8):
            dfs(x+dx[i],y+dy[i])
        return True



n, m = map(int,sys.stdin.readline().split())

graph = []
total = 0
for i in range(n):
    graph.append(list(map(int,sys.stdin.readline().split())))


for i in range(n):
    for j in range(m):
        if dfs(i,j)==True:
            total+=1 

print(total)

 

 

3. 결과 및 느낀점

recursionlimit을 항상 적어주자. 런타임 에러가 나기 쉽다.

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 10026 Python  (0) 2021.09.23
[Boj/백준] 2583 Python  (0) 2021.09.22
[Boj/백준] 2667 Python  (0) 2021.09.21
[Boj/백준] 2644 Python  (0) 2021.09.20
[Boj/백준] 21773 Python  (0) 2021.09.18