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] ๋ฐฑ์ค€ - 1261. ์•Œ๊ณ ์ŠคํŒŸ
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 1261. ์•Œ๊ณ ์ŠคํŒŸ

2020. 11. 15. 00:44
๋ฐ˜์‘ํ˜•

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

  • G4 | ๋‹ค์ต์ŠคํŠธ๋ผ(BFS๋„ ๊ฐ€๋Šฅ)

๋‹ค์ต์ŠคํŠธ๋ผ ์œ ํ˜•์œผ๋กœ ๋˜์–ด์žˆ์ง€๋งŒ BFS๋„ ๊ฐ€๋Šฅํ•œ๊ฑฐ ๊ฐ™๋‹ค.

BFS๋กœ ํ’€ ๋ฉด ๊ธธ์„ ์ฐพ์•„ ๊ฐˆ ๋•Œ 0์ด๋ฉด ๊ทธ๋ƒฅ ๊ฐ€๊ณ  1์ด๋ฉด +1ํ•ด์„œ ๊ฐ€๋ฉด ๋œ๋‹ค.

 

์ด ๋ฌธ์ œ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ๋กœ ํ’€์–ด๋ดค๋‹ค.

( ๋‹ค์ต์ŠคํŠธ๋ผ์™€ ์šฐ์„ ์ˆœ์œ„ํ(ํž™ํ)๋Š” ์ง๊ฟ )

 

  • ์ฃผ์–ด์ง„ ๋ฏธ๋กœ์™€ ๊ฐ™์€ ํฌ๊ธฐ์˜ 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. ( ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ค„ ๋ฐฐ์—ด )
  • 0,0 ๋ถ€ํ„ฐ ์ฃผ๋ณ€์„ ํƒ์ƒ‰ํ•˜๋ฉฐ ๋ฐฉ(0)์ด๋ฉด ๋น„์šฉ์„ ํ˜„์žฌ๋น„์šฉ์œผ๋กœ ๋„ฃ๊ณ , ๋ฒฝ(1)์ด๋ฉด ๋น„์šฉ์„ ํ˜„์žฌ๋น„์šฉ +1ํ•ด์„œ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค.
  • ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ ์ง€์ ์„๋“ค ํž™ํ์— ๋„ฃ๊ณ  ๋ชฉ์ ์ง€๊ฐ€ ๋‚˜์˜ฌ ๋•Œ ๊นŒ์ง€ ์œ„์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

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

import heapq

if __name__ == '__main__':
    N, M = map(int, input().split())  # ๋ฌธ์ œ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘์ด๋ฏ€๋กœ -1 ํ•ด์คŒ
    room = [list(map(int, input())) for _ in range(M)]

    # ๊ฐ€์ค‘์น˜ 2์ฐจ์› ๋ฐฐ์—ด
    key = [[float('inf')] * N for _ in range(M)]

    pq = []
    heapq.heappush(pq, (0, 0, 0))
    key[0][0] = 0
    dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
    while pq:
        cost, x, y = heapq.heappop(pq)
        if x == M - 1 and y == N - 1:
            print(key[x][y])
            break

        for k in range(4):
            nx = x + dx[k]
            ny = y + dy[k]
            if 0 <= nx < M and 0 <= ny < N:
                # ๋‹ค์Œ ๊ฐˆ ๊ณณ์ด ๋ฒฝ์ด๊ณ , ํ˜„์žฌ ๊ฐ€๋Š” ๋ฃจํŠธ์˜ ๋น„์šฉ์ด ๋” ์ž‘๋‹ค๋ฉด ๊ณ 
                if room[nx][ny] == 1 and cost + 1 < key[nx][ny]:
                    heapq.heappush(pq, (cost + 1, nx, ny))
                    key[nx][ny] = cost + 1
                # ๋‹ค์Œ ๊ฐˆ ๊ณณ์ด ๋ฃธ์ด๊ณ , ํ˜„์žฌ ๊ฐ€๋Š” ๋ฃจํŠธ์˜ ๋น„์šฉ์ด ๋” ์ž‘๋‹ค๋ฉด ๊ณ 
                elif room[nx][ny] == 0 and cost < key[nx][ny]:
                    heapq.heappush(pq, (cost, nx, ny))
                    key[nx][ny] = cost
 

 

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

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/1261

 

1261๋ฒˆ: ์•Œ๊ณ ์ŠคํŒŸ

์ฒซ์งธ ์ค„์— ๋ฏธ๋กœ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€๋กœ ํฌ๊ธฐ M, ์„ธ๋กœ ํฌ๊ธฐ N (1 ≤ N, M ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๋ฏธ๋กœ์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž 0๊ณผ 1์ด ์ฃผ์–ด์ง„๋‹ค. 0์€ ๋นˆ ๋ฐฉ์„ ์˜๋ฏธํ•˜๊ณ , 1์€ ๋ฒฝ์„ ์˜๋ฏธ

www.acmicpc.net

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

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

[python] ๋ฐฑ์ค€ - 15685. ๋“œ๋ž˜๊ณค ์ปค๋ธŒ (์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ ๋ฌธ์ œ)  (0) 2020.11.17
[python] ๋ฐฑ์ค€ - 14500. ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ ๋ฌธ์ œ)  (0) 2020.11.16
[python] ๋ฐฑ์ค€ - 14889. ์Šคํƒ€ํŠธ์™€ ๋งํฌ  (0) 2020.11.14
[python] SWEA - 10726. ์ด์ง„์ˆ˜ ํ‘œํ˜„  (2) 2020.11.13
[python] ๋ฐฑ์ค€ - 14501. ํ‡ด์‚ฌ  (0) 2020.11.11
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] ๋ฐฑ์ค€ - 15685. ๋“œ๋ž˜๊ณค ์ปค๋ธŒ (์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ ๋ฌธ์ œ)
    • [python] ๋ฐฑ์ค€ - 14500. ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ ๋ฌธ์ œ)
    • [python] ๋ฐฑ์ค€ - 14889. ์Šคํƒ€ํŠธ์™€ ๋งํฌ
    • [python] SWEA - 10726. ์ด์ง„์ˆ˜ ํ‘œํ˜„
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

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