deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

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

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

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

์ธ๊ธฐ ๊ธ€

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์•„์ดํ…œ ์ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)
Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์•„์ดํ…œ ์ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)

2022. 2. 11. 22:27
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • ํ…Œ๋‘๋ฆฌ ๊ทธ๋ฆฌ๊ธฐ
    • 2์ฐจ์› ๋ฐฐ์—ด ๋งŒ๋“ค์–ด ๋‘๊ณ 
    • ํ…Œ๋‘๋ฆฌ๋Š” 1, ๋‚ด๋ถ€๋Š” 0์œผ๋กœ ํ‘œ์‹œ
    • ํ…Œ๋‘๋ฆฌ์™€ ๋‚ด๋ถ€๊ฐ€ ๊ฒน์น ๊ฒฝ์šฐ 0์œผ๋กœ ํ‘œ์‹œ

1๋ฒˆ ์˜ˆ์ œ ๋Œ€์ถฉ ํฌ๊ธฐ 20์žก๊ณ  ํ…Œ๋‘๋ฆฌ ๋งŒ๋“  ๋ชจ์Šต

  • ์œ„ ๊ทธ๋ฆผ์ด ์˜ˆ์‹œ์˜ ๋ฐฉํ–ฅ๊ณผ ๋‹ค๋ฅธ ์ด์œ ๋Š” ์ขŒํ‘œ๊ณ„๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ
  • ๊ทธ๋ฆฌ๊ณ  2๋ฐฐ๋ฅผ ์ฃผ๊ณ  ํ…Œ๋‘๋ฆฌ๋ฅผ ์žก์•˜๋‹ค
    • ๊ทธ ์ด์œ ๋Š” 2๋ฐฐ๋ฅผ ์•ˆ์ฃผ๋ฉด ๊ธธ์ด ์•„๋‹ˆ์—ฌ๋„ 1์นธ ์ฐจ์ด๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๋กœ๊ฐ€ ๋˜์–ด ๋ฒ„๋ฆฐ๋‹ค.
  • ๊ธธ ์ฐพ๊ธฐ๋Š” BFS ๋กœ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์ฐพ์•„์ฃผ๋ฉด ๋

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

from collections import deque


def solution(rectangle, characterX, characterY, itemX, itemY):
    answer = 0
    MAX = 102  # ๋‘๋ฐฐ๋กœ ๋Š˜๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ 102
    # ํ…Œํˆฌ๋ฆฌ ๊ทธ๋ฆฌ๊ธฐ
    field = [[5] * MAX for _ in range(MAX)]  # 5๋Š” ๋งจ์ฒ˜์Œ ๋•…
    for rec in rectangle:
        x1, y1, x2, y2 = map(lambda x: x * 2, rec)
        for i in range(x1, x2 + 1):
            for j in range(y1, y2 + 1):
                if x1 < i < x2 and y1 < j < y2:  # ๋‚ด๋ถ€์ผ ๋•Œ
                    field[i][j] = 0
                elif field[i][j] != 0:  # ํ…Œ๋‘๋ฆฌ์ผ ๋•Œ ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹ ๋•Œ
                    field[i][j] = 1  # ํ…Œํˆฌ๋ฆฌ๋ž‘ ๋‚ด๋ถ€๋ž‘ ๊ฒน์น˜๋ฉด ๊ทธ๊ฑด ๋‚ด๋ถ€

    # ๊ธธ ์ฐพ๊ธฐ (์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” BFS)
    q = deque()
    q.append([characterX * 2, characterY * 2])
    visited = [[0] * MAX for _ in range(MAX)]
    visited[characterX * 2][characterY * 2] = 1
    dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
    while q:
        x, y = q.popleft()
        if x == itemX * 2 and y == itemY * 2:
            answer = (visited[x][y] - 1) // 2
            break
            
        for k in range(4):
            nx = x + dx[k]
            ny = y + dy[k]
            if visited[nx][ny] == 0 and field[nx][ny] == 1:
                q.append([nx, ny])
                visited[nx][ny] = visited[x][y] + 1

    return answer

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๋งํฌ: ์•„์ดํ…œ ์ค๊ธฐ

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] SWEA - 13547. ํŒ”์”จ๋ฆ„  (0) 2022.02.22
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ณต ์ด๋™ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ3)  (1) 2022.02.15
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 110 ์˜ฎ๊ธฐ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2)  (0) 2022.02.10
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์Šคํƒ€ ์ˆ˜์—ด(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)  (0) 2022.02.09
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ต์ ์— ๋ณ„ ๋งŒ๋“ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)  (0) 2022.02.08
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] SWEA - 13547. ํŒ”์”จ๋ฆ„
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ณต ์ด๋™ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ3)
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 110 ์˜ฎ๊ธฐ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2)
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์Šคํƒ€ ์ˆ˜์—ด(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

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