[๋ฐฑ์ค€] 4963 ์„ฌ์˜ ๊ฐœ์ˆ˜ (python ํŒŒ์ด์ฌ)

2025. 1. 24. 01:53ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/4963


ํ”ํ•œ ๊ตฌ์—ญ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. ๊ทผ๋ฐ ํŠน์ดํ•œ ๊ฑด ๋Œ€๊ฐ์„ ๋„ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฑธ๋กœ ์ƒ๊ฐํ•ด์•ผ ํ•˜๋Š” ๊ฒŒ ํŠน์ดํ•˜๋‹ค. 

๊ทธ๊ฒƒ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋‚˜๋จธ์ง„ ์‰ฌ์šด ๋ฌธ์ œ.


์•„์ด๋””์–ด

- ์ผ๋ฐ˜์ ์ธ ์ƒํ•˜์ขŒ์šฐํƒ์ƒ‰์—์„œ ์ถ”๊ฐ€๋กœ ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ๋„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.


์ „์ฒด ์ฝ”๋“œ

import sys
sys.setrecursionlimit(10**6)

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

def dfs(x, y):

    if x <= -1 or x >= H or y <= -1 or y >= W:
        return False
    #print(x, y)
    if island[x][y] == 1:
        island[x][y] = 0
        dfs(x, y + 1)
        dfs(x + 1, y + 1)
        dfs(x + 1, y)
        dfs(x + 1, y - 1)
        dfs(x, y - 1)
        dfs(x - 1, y - 1)
        dfs(x - 1, y)
        dfs(x - 1, y + 1)
        return True
    return False

while 1:
    W, H = map(int, input().split())
    if W == 0 and H == 0:
        break
    answer = 0
    island = []
    for _ in range(H):
        island.append([int(x) for x in sys.stdin.readline().rstrip().split()])
    #print(island)

    for i in range(H):
        for j in range(W):
            if dfs(i, j):
                answer += 1

    print(answer)

์ฝ”๋“œ ์„ค๋ช…

dx = [0, 0, 1, -1, 1, -1, 1, -1]
dy = [1, -1, 0, 0, 1, -1, -1, 1]
dfs(x, y + 1)
dfs(x + 1, y + 1)
dfs(x + 1, y)
dfs(x + 1, y - 1)
dfs(x, y - 1)
dfs(x - 1, y - 1)
dfs(x - 1, y)
dfs(x - 1, y + 1)

 

๊ธฐ๋ณธ์ ์ธ ํƒ์ƒ‰์—์„œ ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ๋งŒ ์ถ”๊ฐ€ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1213 ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2025.02.08
[๋ฐฑ์ค€] 1244 ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2025.01.26
[๋ฐฑ์ค€] 30804 ๊ณผ์ผ ํƒ•ํ›„๋ฃจ (python ํŒŒ์ด์ฌ)  (0) 2025.01.22
[๋ฐฑ์ค€] 2563 ์ƒ‰์ข…์ด (python ํŒŒ์ด์ฌ)  (0) 2024.04.01
[๋ฐฑ์ค€] 7579 ์•ฑ (python ํŒŒ์ด์ฌ)  (0) 2024.03.28
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1213 ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 1244 ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 30804 ๊ณผ์ผ ํƒ•ํ›„๋ฃจ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 2563 ์ƒ‰์ข…์ด (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    DFS
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ๋ฐ๋ธŒ์ฝ”์Šค
    DP
    ํŒŒ์ด์ฌ
    ํŒฐ๋ฆฐ๋“œ๋กฌ
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ๊ทธ๋ฆฌ๋””
    ์œ„์ƒ์ •๋ ฌ
    ๋ถ„ํ•  ์ •๋ณต
    ๋ˆ„์ ํ•ฉ
    ํˆฌํฌ์ธํ„ฐ
    ์ •์ฒ˜๊ธฐ
    BFS
    imos
    Python
    ๊ตฌํ˜„
    ๋ฐฑ์ค€
    ์Šคํƒ
    slicing
    ๋ถ€๋ถ„ํ•ฉ
    SWEA
    ๋ฐฑํŠธ๋ž˜ํ‚น
    boj
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    Bruteforce
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ๋ƒ…์ƒ‰
    ์žฌ๊ท€
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 4963 ์„ฌ์˜ ๊ฐœ์ˆ˜ (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”