Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155) N
    • ๐Ÿ’ปBackend (1) N
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

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

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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ† ์ต์ ์ˆ˜
  • Union
  • ๋ฆฌ์ŠคํŠธ
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ์ •๋ ฌ
  • ํ† ์ต์‹œํ—˜
  • ์™„์ „ํƒ์ƒ‰
  • ์˜ค๋ธ”์™„
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ํ† ์ต๋…ํ•™
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ์ฝ”ํ…Œ
  • ๊ทธ๋ฆฌ๋””
  • greedy algorithm
  • ๊ตฌํ˜„
  • mysql
  • BFS
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ํ† ์ตRC
  • UNION ALL
  • ํ† ์ต๊ณต๋ถ€
  • ๋‚ด์žฅํ•จ์ˆ˜
  • BaekJoon
  • Python
  • ๋ฐฑ์ค€
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • sort
  • ํ•ด์ปค์Šคํ† ์ต
  • ํ† ์ต๊ธฐ์ถœ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon

[Python] ๋ฐฑ์ค€ 14502 ์—ฐ๊ตฌ์†Œ | BFS

2023. 5. 20. 16:43

 

~๋ชฉ์ฐจ~

๋ฌธ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

์ž‘์„ฑ ์ฝ”๋“œ


 

๋ฌธ์ œ

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

 

14502๋ฒˆ: ์—ฐ๊ตฌ์†Œ

์ธ์ฒด์— ์น˜๋ช…์ ์ธ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ์—ฐ๊ตฌํ•˜๋˜ ์—ฐ๊ตฌ์†Œ์—์„œ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๋ฐ”์ด๋Ÿฌ์Šค๋Š” ์•„์ง ํผ์ง€์ง€ ์•Š์•˜๊ณ , ๋ฐ”์ด๋Ÿฌ์Šค์˜ ํ™•์‚ฐ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—ฐ๊ตฌ์†Œ์— ๋ฒฝ์„ ์„ธ์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ๊ตฌ์†Œ๋Š” ํฌ

www.acmicpc.net

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

- 0์ธ ๊ฐ’์˜ ๋ชจ๋“  ์œ„์น˜๋ฅผ ๋ฆฌ์ŠคํŠธ (blank)์— ๋„ฃ์–ด์„œ cominations ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด 3๊ฐœ ์œ„์น˜ ๋žœ๋ค ์ถ”์ถœ(nCr)

- ๋ฒ ์ด์Šค๊ฐ€ ๋˜๋Š” ๊ธฐ์กด ์ •๋ณด์— ํ•ด๋‹น ํ•˜๋Š” 3๊ฐœ์˜ ์œ„์น˜๋ฅผ 1๋กœ ์„ค์ •ํ•˜๊ณ  check ํ•จ์ˆ˜ ํ˜ธ์ถœ

 

- check ํ•จ์ˆ˜

   ~ BFS๋ฅผ ์œ„ํ•œ ํ๋ฅผ ์„ ์–ธํ•˜์—ฌ ๊ฐ’์ด 2์ธ ์œ„์น˜๋ฅผ ๋„ฃ๋Š”๋‹ค.

   ~ ํ์— ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด ํ•ด๋‹น ํ•˜๋Š” ์œ„์น˜์—์„œ ์œ„, ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ, ์™ผ์ชฝ ์œ„์น˜๊ฐ€ 0์ด๋ฉด์„œ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด

       2๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ•ด๋‹น ์œ„์น˜๋ฅผ ํ์— ์‚ฝ์ž…ํ•˜์—ฌ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ํผ์งˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ์„ ์ „๋ถ€ 2๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

   ~ ์ตœ์ข… ๊ฒฐ๊ณผ์—์„œ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ์นด์šด๋“œํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

- ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ 0์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์ตœ์ข… ๋‹ต์ด ๋œ๋‹ค.

 

์ž‘์„ฑ ์ฝ”๋“œ

from itertools import combinations
import copy
from collections import deque
import sys
input = sys.stdin.readline

dr = [1, -1, 0, 0]  # down, up, right, left
dc = [0, 0, 1, -1]


def check(board):
    que = deque()
    for i in range(n):
        for j in range(m):
            if board[i][j] == 2:
                que.append((i, j))
    while que:
        r, c = que.popleft()
        for d in range(4):
            y = r + dr[d]
            x = c + dc[d]
            if -1 < x < m and -1 < y < n and board[y][x] == 0:
                board[y][x] = 2
                que.append((y, x))

    result = 0
    for i in range(len(board)):
        result += board[i].count(0)
    return result

n, m = map(int, input().split())
board = []
blank = []
result = 0

for i in range(n):
    temp = list(map(int, input().split()))
    for j in range(m):
        if temp[j] == 0:
            blank.append((i, j))
    board.append(temp)

nCr = combinations(blank, 3)

for x in nCr:
    tempBoard = copy.deepcopy(board)
    for i, j in x:  # ์„ ํƒ๋œ ๋ฒฝ 3๊ฐœ ์œ„์น˜
        tempBoard[i][j] = 1
    result = max(result, check(tempBoard))

print(result)

 

 

 

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ข‹์•„์š” ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”๐Ÿ’š

 

๊ถ๊ธˆํ•œ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์„ธ์š”~!

 

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1197 ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ  (0) 2023.05.23
[Python] ๋ฐฑ์ค€ 18405 ๊ฒฝ์Ÿ์  ์ „์—ผ | BFS  (0) 2023.05.20
[Python] ๋ฐฑ์ค€ 4485 ๋…น์ƒ‰ ์˜ท ์ž…์€ ์• ๊ฐ€ ์ ค๋‹ค์ง€? | ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2023.05.18
[Python] ๋ฐฑ์ค€ 1504 ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ | ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2023.05.17
[Python] ๋ฐฑ์ค€ 13549 ์ˆจ๋ฐ”๊ผญ์งˆ 3 | ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2023.05.17
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ๋ฐฑ์ค€ 1197 ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ
    • [Python] ๋ฐฑ์ค€ 18405 ๊ฒฝ์Ÿ์  ์ „์—ผ | BFS
    • [Python] ๋ฐฑ์ค€ 4485 ๋…น์ƒ‰ ์˜ท ์ž…์€ ์• ๊ฐ€ ์ ค๋‹ค์ง€? | ๋‹ค์ต์ŠคํŠธ๋ผ
    • [Python] ๋ฐฑ์ค€ 1504 ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ | ๋‹ค์ต์ŠคํŠธ๋ผ
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

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