์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/PYTHON

[ํŒŒ์ด์ฌ PYTHON] ๋ฐฑ์ค€ 14502๋ฒˆ ใ€์—ฐ๊ตฌ์†Œใ€‘

2023. 3. 8. 10:31


import copy
import sys
from collections import deque

# ์˜ˆ์ œ ์ž…๋ ฅ
row,col= map(int,input().split())
_map = [[0]*col for _ in range(row)]

for i in range(row):
    info = list(map(int,sys.stdin.readline().split()))
    for j in range(col):
        _map[i][j]=info[j]

queue = deque([])

# ๋ฐ”์ด๋Ÿฌ์Šค ์œ„์น˜ ์ €์žฅ
for i in range(row):
    for j in range(col):
        if _map[i][j] == 2:
            queue.append([i,j])

dr = [1,-1,0,0]
dc = [0,0,1,-1]

ans = -1e9

def getSafeArea(copiedMap):
    num = 0
    for i in range(row):
        num+=copiedMap[i].count(0)
    return num

# ๋ฐ”์ด๋Ÿฌ์Šค ํผํŠธ๋ฆฌ๊ธฐ bfs()
def bfs():
    virus = copy.deepcopy(queue)
    copiedMap = copy.deepcopy(_map)
    while len(virus) !=0:
        r,c = virus.popleft()
        for i in range(4):
            nr = r + dr[i]
            nc = c + dc[i]
            if 0<=nr<row and 0<=nc<col and copiedMap[nr][nc]==0:
                virus.append([nr,nc])
                copiedMap[nr][nc]=2
    return getSafeArea(copiedMap)
# ๋ฒฝ 3๊ฐœ๋ฅผ ์„ธ์›Œ๋ณด๊ธฐ
def bt(num):
    global ans
    if num == 3:
        ans = max(ans,bfs())
        return
    for i in range(row):
        for j in range(col):
            if _map[i][j] !=0:
                continue
            _map[i][j]=1
            bt(num+1)
            _map[i][j]=0
bt(0)
print(ans)

 

๋ฌธ์ œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

1. ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ๋งต ์ „๋ฐ˜์— ํผ์ ธ์žˆ์œผ๋ฏ€๋กœ, bfs()๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์ „ ์ขŒํ‘œ๋ฅผ ์ถ”์ถœํ•ด์„œ queue์— ๋‹ด๊ณ  bfs()๋ฅผ ํ• ๋•Œ๋งˆ๋‹ค deepcopy๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค.

 

2. ๋งต์˜ 0 ์ธ ์ง€์ ์— ๋ฒฝ์„ ์„ธ์›Œ๋ณด๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ•ด์•ผ๊ฒ ๋‹ค. ๋ฒฝ์„ 3๊ฐœ ์„ธ์šด ์‹œ์ ์—์„œ bfs()๋กœ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ํผ๋œจ๋ ค์•ผ ๊ฒ ๋‹ค.

 

3. ๋ฐ”์ด๋Ÿฌ์Šค๋กœ ๋‹ค ํผ๋œจ๋ฆฐ ๋‹ค์Œ์— count() ํ•จ์ˆ˜๋กœ ์•ˆ์ „์˜์—ญ์ธ 0์„ ๊ตฌํ•ด์•ผ๊ฒ ๋‹ค.

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/PYTHON' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํŒŒ์ด์ฌ PYTHON] ๋ฐฑ์ค€ 2638๋ฒˆ ใ€์น˜์ฆˆใ€‘
    • [ํŒŒ์ด์ฌ PYTHON] ๋ฐฑ์ค€ 16236๋ฒˆ ใ€์•„๊ธฐ ์ƒ์–ดใ€‘
    • [ํŒŒ์ด์ฌ PYTHON] ๋ฐฑ์ค€ 15686๋ฒˆ ใ€์น˜ํ‚จ ๋ฐฐ๋‹ฌใ€‘
    • [ํŒŒ์ด์ฌ PYTHON] ๋ฐฑ์ค€ 15684๋ฒˆ ใ€์‚ฌ๋‹ค๋ฆฌ ์กฐ์ž‘ใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

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