[BOJ 1012] 유기농배추

2024. 11. 10. 21:52·코딩테스트/Python
반응형

 

DFS를 이용한 풀이는 아래와 같다.

 

메모리를 보호하려고 백준에서는 재귀함수에 제한을 걸어두었다.

문제 해결에 필요한 정도의 재귀를 허용하기 위해서 아래 함수를 이용했다.

 

sys.setrecursionlimit(5000)

 

import sys

#sys.stdin = open("input.txt", "r")
sys.setrecursionlimit(5000)

T = int(input())

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

def DFS(y, x):
    mapp[y][x] = 0
    for i in range(4):
        ny = y + dy[i]
        nx = x + dx[i]

        if ny < 0 or ny >= N or nx <0 or nx >= M:
            continue
        if mapp[ny][nx] == 0:
            continue
        DFS(ny, nx)
    return


for i in range(T):
    cnt = 0
    M, N, K = map(int, input().split())
    mapp = [[0 for col in range(M)] for row in range(N)]
    for j in range(K):
        x, y = map(int, input().split())
        mapp[y][x] = 1

    #print(mapp)
    for col in range(N):
        for row in range(M):
            if mapp[col][row] == 1:
                DFS(col, row)
                cnt +=1
    print(cnt)
반응형

'코딩테스트 > Python' 카테고리의 다른 글

[BOJ] 9996 한국이 그리울 땐 서버에 접속하지  (2) 2024.11.14
[BOJ] 12014 주식  (4) 2024.11.12
[소프티어] 마이크로서버  (0) 2024.11.09
[BOJ 2852] NBA 농구  (1) 2024.11.08
[소프티어] 좌석관리_히든테케1번 python  (0) 2024.11.07
'코딩테스트/Python' 카테고리의 다른 글
  • [BOJ] 9996 한국이 그리울 땐 서버에 접속하지
  • [BOJ] 12014 주식
  • [소프티어] 마이크로서버
  • [BOJ 2852] NBA 농구
Dangeunii
Dangeunii
    반응형
  • Dangeunii
    Dang'story
    Dangeunii
  • 전체
    오늘
    어제
    • 분류 전체보기 (67)
      • Front-end (0)
      • Back-end (8)
        • Spring (4)
      • 코딩테스트 (21)
        • C++ (8)
        • Python (13)
      • Computer Science (8)
        • 자료구조 & 알고리즘 (3)
        • 인공지능 (1)
        • 선형대수 (1)
        • 클라우드 (2)
        • 데이터베이스 (1)
      • TIL (29)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • hELLO· Designed By정상우.v4.10.3
Dangeunii
[BOJ 1012] 유기농배추
상단으로

티스토리툴바