ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

2025. 1. 17. 20:10ยท์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

๊ฐœ์š”

๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ •์ ์—์„œ ๋‹ค๋ฅธ ์ •์ ์œผ๋กœ ๊ฐˆ ๋•Œ์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ `๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜`๊ณผ `ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜`์ด ์žˆ๋‹ค.

 

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์–ด๋А ํ•œ ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๊ณ , ์—ฌ๊ธฐ์„œ ์•Œ์•„๋ณผ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋“  ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

 

๐Ÿ’ก ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋“  ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

 

ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๋ชจ๋“  ์ •์ ์—์„œ ๊ฐ์ž์˜ ๊ฐ„์„ ์— ๋”ฐ๋ฅธ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ํ•œ๋‹ค.
  2. 2~N๋ฒˆ ์ •์ ์ด 1๋ฒˆ ์ •์ ์„ ๊ฑฐ์ณ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ํ•œ๋‹ค.
  3. 1, 3~N๋ฒˆ ์ •์ ์ด 2๋ฒˆ ์ •์ ์„ ๊ฑฐ์ณ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ํ•œ๋‹ค.
  4. ํ•ด๋‹น ๊ณผ์ •์„ ๋ชจ๋“  ์ •์ ์ด ๊ธฐ์ค€ ๋…ธ๋“œ๋ฅผ ํ•œ๋ฒˆ์”ฉ ํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ชจ๋“  ์ •์ ์—์„œ ๋ชจ๋“  ์ •์ ์— ๋Œ€ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

์†Œ์Šค ์ฝ”๋“œ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด๊ฐ€ ๊ฐ„๋‹จํ•œ๋งŒํผ ์†Œ์Šค ์ฝ”๋“œ๋„ ๊ฐ„๋‹จํ•˜๋‹ค.

// ์ดˆ๊ธฐํ™” ์ฝ”๋“œ
int[][] shortest = new int[n + 1][n + 1];
for (int v1 = 1; v1 <= n; v1++) {
	for (int v2 = 1; v2 <= n; v2++) {
		if (v1 == v2) shortest[v1][v2] = 0;
		else if (v1 -> v2๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด) shortest[v1][v2] = w;
		else shortest[v1][v2] = INF;
	}
}

// ์‹ค์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
for (int v1 = 1; v1 <= n; v1++) {
	for (int v2 = 1; v2 <= n; v2++) {
		for (int v = 1; v <= n; v++) {
			shortest[v2][v] = Math.min(shortest[v2][v], shortest[v2][v1] + shortest[v1][v]);
		}
	}
}

 

๋‹จ์ˆœํ•˜๊ฒŒ ์ค‘๊ฐ„ ๋…ธ๋“œ v1, ์ตœ๋‹จ ๊ฒฝ๋กœ ์‹œ์ž‘ ๋…ธ๋“œ v2, ์ตœ๋‹จ ๊ฒฝ๋กœ ๋„์ฐฉ ๋…ธ๋“œ v ์ˆœ์œผ๋กœ 3์ค‘ for๋ฌธ์„ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.

 

 

1238 - ํŒŒํ‹ฐ : https://www.acmicpc.net/problem/1238

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4485. ๋…น์ƒ‰ ์˜ท ์ž…์€ ์• ๊ฐ€ ์ ค๋‹ค์ง€?  (1) 2025.01.19
1238. ํŒŒํ‹ฐ  (0) 2025.01.17
ํŽœ์œ…ํŠธ๋ฆฌ  (4) 2024.10.03
16235๋ฒˆ ๋ฌธ์ œ์˜ ์‹œ๊ฐ„ ์ค„์ด๊ธฐ  (1) 2024.09.26
1513 ๋ฌธ์ œ์—์„œ ์™œ 4์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜?  (2) 2024.09.25
'์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 4485. ๋…น์ƒ‰ ์˜ท ์ž…์€ ์• ๊ฐ€ ์ ค๋‹ค์ง€?
  • 1238. ํŒŒํ‹ฐ
  • ํŽœ์œ…ํŠธ๋ฆฌ
  • 16235๋ฒˆ ๋ฌธ์ œ์˜ ์‹œ๊ฐ„ ์ค„์ด๊ธฐ
์œจ๋ฌด;
์œจ๋ฌด;
  • ์œจ๋ฌด;
    ๐ŸฅŠ
    ์œจ๋ฌด;
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (65)
      • ๊ฐœ๋ฐœ (30)
        • ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค (13)
        • ์šด์˜์ฒด์ œ (12)
      • ๊ฐœ๋ฐœ์„œ์  (2)
        • ์ž๋ฐ”-์Šคํ”„๋ง ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (2)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ (28)
      • ๊ฒŒ์ž„๊ฐœ๋ฐœ (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ด๋™์ƒ์„ฑ์ž
    ๊ฐœ๋ฐœ
    ์ธ๋””๊ฒŒ์ž„
    C++
    ์ ˆ์ฐจ์ ์ƒ์„ฑ
    ์…€๋ฃฐ๋Ÿฌ์˜คํ† ๋งˆํƒ€
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ž๋ฐ”
    ํŒŒ์ด์ฌ
    2048
    ๋กœ๊ทธ
    ๋ฐฑ์ค€
    2048(Hard)
    ๊ฒŒ์ž„๊ฐœ๋ฐœ
    ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค
    dfs
    ๊ฐœ๋ฐœ์—ฐ์Šต
    ๊ฒŒ์ž„
    ์šฐํ…Œ์ฝ”
    ๋กœ๊ทธ๋ผ์ดํฌ
    BFS
    ์ฝ”๋”ฉ
    bsp
    python
    ์ด๊ฒƒ์ดC++์ด๋‹ค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์œจ๋ฌด;
ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
์ƒ๋‹จ์œผ๋กœ

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