๊ด€๋ฆฌ ๋ฉ”๋‰ด

Algo ์“ฐ์ž

[BaekJoon] 1012 ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ๋ณธ๋ฌธ

๐Ÿ’ฏ CodingTest/BaekJoon

[BaekJoon] 1012 ์œ ๊ธฐ๋† ๋ฐฐ์ถ”

S.Honey 2022. 4. 12. 13:16

โ–ถ ๋ฌธ์ œ :

[์ถœ์ฒ˜ : https://www.acmicpc.net/problem/1012]

import sys

t = int(input())
sys.setrecursionlimit(10**6)

def dfs(a, b):
    if a < 0 or a >= m or b < 0 or b >= n:
        return

    if graph[a][b] == 0:
        return

    graph[a][b] = 0
    dfs(a - 1, b)
    dfs(a, b - 1)
    dfs(a + 1, b)
    dfs(a, b + 1) 

for _ in range(t):
    m, n, k = map(int, input().split())

    graph = [[0 for _ in range(n)]for _ in range(m)]

    for _ in range(k):
        a, b = map(int, input().split())
        graph[a][b] = 1
    
    result = 0
    for a in range(m):
        for b in range(n):
            if graph[a][b] == 1:
                dfs(a,b)
                result += 1

    print(result)

 

โ–ถ ๋ฌธ์ œํ’€์ด 

 

1. dfs() ์„ ์–ธ => ๋ฐฐ์—ด์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ํ•ด๋‹น ์นธ์˜ ๊ฐ’์ด 0์ด๋ฉด ๋ฐ˜ํ™˜ ์•„๋‹Œ ๊ฒฝ์šฐ์—” ํ•ด๋‹น ์นธ๊ณผ ์ธ์ ‘ํ•˜๋ฉด์„œ 1์„ ๊ฐ€์ง„ ์นธ์„ 0์œผ๋กœ ๋ณ€ํ™˜

2. graph๋ฐ์ดํ„ฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ 1๊ฐ’์„ ๊ฐ€์ง„ ์นธ์„ ์ฐพ์•„ ํ•ด๋‹น ์นธ๊ณผ ์ธ์ ‘ํ•œ 1๋“ค์„ 0์œผ๋กœ ๋ณ€ํ™˜

3. ํƒ์ƒ‰ ์ข…๋ฃŒ์‹œ 1์„ ๊ฐ€์ง„ ๊ตฐ์ง‘์„ 0์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ์˜ ํšŸ์ˆ˜๋ฅผ ์„ผ result ๊ฐ’์„ ์ถœ๋ ฅ

 

'๐Ÿ’ฏ CodingTest > BaekJoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BaekJoon] 1107 ๋ฆฌ๋ชจ์ปจ  (0) 2022.04.14
[BaekJoon] 1074๋ฒˆ Z  (0) 2022.04.13
[BaekJoon] 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜  (0) 2022.04.12
[BaekJoon] 18111 ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ  (0) 2022.04.11
[BaekJoon] 15829 Hashing  (0) 2022.04.11