We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1261๋ฒˆ: ์•Œ๊ณ ์ŠคํŒŸ

Redddy 2022. 11. 23. 22:46

๐Ÿ”ˆ ๋ฌธ์ œ

์•Œ๊ณ ์ŠคํŒŸ ์šด์˜์ง„์ด ๋ชจ๋‘ ๋ฏธ๋กœ์— ๊ฐ‡ํ˜”๋‹ค. ๋ฏธ๋กœ๋Š” N*M ํฌ๊ธฐ์ด๋ฉฐ, ์ด 1*1ํฌ๊ธฐ์˜ ๋ฐฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋ฏธ๋กœ๋Š” ๋นˆ ๋ฐฉ ๋˜๋Š” ๋ฒฝ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๋นˆ ๋ฐฉ์€ ์ž์œ ๋กญ๊ฒŒ ๋‹ค๋‹ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฒฝ์€ ๋ถ€์ˆ˜์ง€ ์•Š์œผ๋ฉด ์ด๋™ํ•  ์ˆ˜ ์—†๋‹ค.
์•Œ๊ณ ์ŠคํŒŸ ์šด์˜์ง„์€ ์—ฌ๋Ÿฌ๋ช…์ด์ง€๋งŒ, ํ•ญ์ƒ ๋ชจ๋‘ ๊ฐ™์€ ๋ฐฉ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ๋ช…์ด ๋‹ค๋ฅธ ๋ฐฉ์— ์žˆ์„ ์ˆ˜๋Š” ์—†๋‹ค. ์–ด๋–ค ๋ฐฉ์—์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์€ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๋นˆ ๋ฐฉ์ด๋‹ค. ์ฆ‰, ํ˜„์žฌ ์šด์˜์ง„์ด (x, y)์— ์žˆ์„ ๋•Œ, ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์€ (x+1, y), (x, y+1), (x-1, y), (x, y-1) ์ด๋‹ค. ๋‹จ, ๋ฏธ๋กœ์˜ ๋ฐ–์œผ๋กœ ์ด๋™ ํ•  ์ˆ˜๋Š” ์—†๋‹ค.
๋ฒฝ์€ ํ‰์†Œ์—๋Š” ์ด๋™ํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์•Œ๊ณ ์ŠคํŒŸ์˜ ๋ฌด๊ธฐ AOJ๋ฅผ ์ด์šฉํ•ด ๋ฒฝ์„ ๋ถ€์ˆ˜์–ด ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๋ฒฝ์„ ๋ถ€์ˆ˜๋ฉด, ๋นˆ ๋ฐฉ๊ณผ ๋™์ผํ•œ ๋ฐฉ์œผ๋กœ ๋ณ€ํ•œ๋‹ค.
๋งŒ์•ฝ ์ด ๋ฌธ์ œ๊ฐ€ ์•Œ๊ณ ์ŠคํŒŸ์— ์žˆ๋‹ค๋ฉด, ์šด์˜์ง„๋“ค์€ ๊ถ๊ทน์˜ ๋ฌด๊ธฐ sudo๋ฅผ ์ด์šฉํ•ด ๋ฒฝ์„ ํ•œ ๋ฒˆ์— ๋‹ค ์—†์• ๋ฒ„๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, ์•ˆํƒ€๊น๊ฒŒ๋„ ์ด ๋ฌธ์ œ๋Š” Baekjoon Online Judge์— ์ˆ˜๋ก๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, sudo๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
ํ˜„์žฌ (1, 1)์— ์žˆ๋Š” ์•Œ๊ณ ์ŠคํŒŸ ์šด์˜์ง„์ด (N, M)์œผ๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ๋ฒฝ์„ ์ตœ์†Œ ๋ช‡ ๊ฐœ ๋ถ€์ˆ˜์–ด์•ผ ํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

๐Ÿ“์ž…๋ ฅ

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

 

๐Ÿ“‘์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์•Œ๊ณ ์ŠคํŒŸ ์šด์˜์ง„์ด (N, M)์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒฝ์„ ์ตœ์†Œ ๋ช‡ ๊ฐœ ๋ถ€์ˆ˜์–ด์•ผ ํ•˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

๐Ÿ“š ๋ฌธ์ œ ํ’€์ด

์˜ค๋žœ๋งŒ์— ๋ฐ์ดํฌ์ŠคํŠธ๋ผ ์œ ํ˜•์˜ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

๋ณธ๊ฒฉ์ ์ธ ๊ธ€์“ฐ๊ธฐ์— ์•ž์„œ ํ•œ๋™์•ˆ ํฌ์ŠคํŒ…์ด ์—†์—ˆ๋Š”๋ฐ ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค ํ”„๋ฆฌ์ฝ”์Šค ๊ณผ์ • ์ค‘์ด์—ฌ์„œ ์กฐ๊ธˆ ์•„๋‹ˆ ๋งŽ์ด ๋ฐ”๋นด๋‹ค..ใ…Žใ…Ž 

์ˆ˜๊ณ ํ–ˆ์–ด ํ† ๋‹ฅํ† ๋‹ฅ

 

๋‹ค์‹œ ๋ฌธ์ œ๋กœ ๋Œ์•„์˜ค๋ฉด,,

0์™€ 1๋กœ ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง€๊ณ , (1,1)์—์„œ (n,m)๋กœ ๊ฐˆ ๋•Œ ๊ฐ€์žฅ ์ ๊ฒŒ ๋ฒฝ์„ ๋ถ€์ˆ˜๊ณ  ๊ฐ€๋Š” ๊ฒƒ์„ ์กฐ๊ฑด์œผ๋กœ ํ•  ๋•Œ ์ตœ์†Œ ๋ช‡ ๊ฐœ์˜ ๋ฒฝ์„ ๋ถ€์ˆด์•ผ์ง€ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฐพ๋Š” ๋ฌธ์ œ์˜€๋‹ค.

์ƒํ•˜์ขŒ์šฐ 4๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์„ ํ•˜๊ณ  (1,1) ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ด๋™ํ•  ๋•Œ ๋ถ€์ˆœ ๋ฒฝ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•œ 2์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๋•Œ ๊ฐ’์€ ๋ฌดํ•œ์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. ์ด๋™ํ•˜๋ฉด์„œ ๋ถ€์ˆœ ๋ฒฝ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐฑ์‹ ์‹œ์ผœ์ค€๋‹ค. ์ด๋•Œ ๋ฐ์ดํฌ์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

 

๐Ÿ’ป ์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys, heapq
input = sys.stdin.readline
 
m, n = map(int,input().split())
graph = [list(map(int,input().rstrip())) for _ in range(n)]
 
dx = [0,1,-1,0]
dy = [1,0,0,-1]
INF = int(1e9)
distance = [[INF]*(m) for _ in range(n)]
 
 
 
def dijkstra():
    q = []
    heapq.heappush(q, (000)) # cost, x, y
    distance[0][0= 0
 
    while q:
        dist, x, y = heapq.heappop(q)
        if x == n-1 and y == m-1:
            print(dist)
            return
        if distance[x][y] < dist:
            continue
        for i in range(4):
            nx = dx[i] + x
            ny = dy[i] + y
 
            if nx < 0 or ny < 0 or ny >= m or nx >= n:
                continue
            if dist+graph[nx][ny] < distance[nx][ny]:
                distance[nx][ny] = dist + graph[nx][ny]
                heapq.heappush(q, (dist+graph[nx][ny], nx, ny))
 
dijkstra()
cs

 

๐Ÿญ ์‹œํ–‰์ฐฉ์˜ค

์˜ค๋žœ๋งŒ์— ์กฐ๊ธˆ ํ•˜๋“œ(?)ํ•œ ๋ฌธ์ œ ํ’€์–ด์„œ ํ—ค๋งฌ์ค„ ์•Œ์•˜๋Š”๋ฐ ํ•œ๋ฒˆ์— ์„ฑ๊ณตํ•˜์—ฌ์„œ ๋‚˜๋ฆ„ ๋ฟŒ๋“ฏํ–ˆ๋‹ค.

๐Ÿ”— ๋ฌธ์ œ๋งํฌ  ์•Œ๊ณ ์ŠคํŒŸ

 

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

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

www.acmicpc.net