mooon๐ŸŒ™
STUDY
mooon๐ŸŒ™
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (170)
    • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (147)
      • ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (53)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1 (13)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ž…๋ฌธ (54)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] SQL ๊ณ ๋“์  Kit (27)
    • BACK (4)
      • Spring (3)
      • PHP (0)
    • FRONT (5)
    • DevOps (8)
      • Jenkins (8)
    • GitHub๐ŸŒฑ (2)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (1)
      • SQL (1)
    • Error ๐Ÿ’ฅ (0)
      • php (2)
    • ๐Ÿ˜‹ (1)

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

  • โญ ๊นƒํ—ˆ๋ธŒ
  • ๐Ÿ’• ๋ฐฉ๋ช…๋ก
  • ๐Ÿ’ฅ ํƒœ๊ทธ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • DevOps
  • SQL ๊ณ ๋“์  Kit
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • c++
  • SQL
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ๋ฐฑ์ค€
  • Python

์ตœ๊ทผ ๊ธ€

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
mooon๐ŸŒ™

STUDY

๋ฐฑ์ค€ 11404 _ ํ”Œ๋กœ์ด๋“œ
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ 11404 _ ํ”Œ๋กœ์ด๋“œ

2021. 1. 9. 18:06
728x90

www.acmicpc.net/problem/11404

 

11404๋ฒˆ: ํ”Œ๋กœ์ด๋“œ

์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ n์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” ๋ฒ„์Šค์˜ ๊ฐœ์ˆ˜ m์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์…‹์งธ ์ค„๋ถ€ํ„ฐ m+2์ค„๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฒ„์Šค์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋จผ์ € ์ฒ˜์Œ์—๋Š” ๊ทธ ๋ฒ„์Šค์˜ ์ถœ๋ฐœ ๋„์‹œ์˜ ๋ฒˆํ˜ธ๊ฐ€

www.acmicpc.net


โœจ ๋‚ด ์†Œ์Šค ์ฝ”๋“œ

#include<iostream>
#include<algorithm>
using namespace std;

int bus[101][101] = { 0, };

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
    
	int n, m, a, b, c;
	cin >> n >> m;
	for (int i = 0; i < m; i++) {
		cin >> a >> b >> c;
		if (!bus[a][b]) {
			bus[a][b] = c;
		}
        //์ด๋ฏธ ๋…ธ์„ ์ด ์žˆ์œผ๋ฉด, ๋น„์šฉ์ด ๋” ์ž‘์€ ๊ฒƒ์œผ๋กœ ๊ฐ’์„ ๋ฐ”๊พธ์–ด์ค€๋‹ค
		else {
			bus[a][b] = min(bus[a][b], c);
		}
		
	}

	//ํ”Œ๋กœ์ด๋“œ - ์™€์ƒฌ
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			for (int k = 1; k <= n; k++) {
				if (j == k) {
					bus[j][k] = 0;
					continue;
				}
				if (bus[j][i] && bus[i][k]){
					if (bus[j][k] == 0 && bus[j][i] + bus[i][k] == 0) {
						bus[j][k] = 0;
					}
					else if (bus[j][k] == 0) {
						bus[j][k] = bus[j][i] + bus[i][k];
					}
					else if (bus[j][i] + bus[i][k] == 0) {
						bus[j][k] = bus[j][k];
					}
					else {
						bus[j][k] = min(bus[j][k], bus[j][i] + bus[i][k]);
					}
				}
					
			}
		}
	}

	for (int i = 1;i <= n; i++) {
		for (int j = 1; j <= n;j++) {
			cout << bus[i][j] << " ";
		}
		cout << "\n";
	}

	return 0;
}

๐Ÿ™ ๋ฌธ์ œ ํ’€์ด

๐ŸŒฑ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ

'ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ' ์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค

ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์€ ๋ชจ๋“  ์ •์ ์—์„œ ๋ชจ๋“  ์ •์ ์œผ๋กœ์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค

ํ† ๋Œ€๋Š” ๊ธฐ๋ณธ์ ์ธ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€๊ณ 

'algorithm'๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ min ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ๊ตฌํ•˜๋‹ค๋ณด๋‹ˆ, 0์€ ๊ฐ’์„ ๊ตฌํ•˜์ง€ ๋ชปํ•  ๋•Œ์˜ ๊ฒฐ๊ณผ๋กœ ๋‚˜์™€์•ผ ๋˜๋Š” ๊ฒƒ์ธ๋ฐ ์ด๋ฅผ ์ตœ์†Œ์ธ ๊ฐ’์œผ๋กœ ํŒ๋ณ„ํ•ด๋ฒ„๋ ค์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช‡๊ฐ€์ง€ ์˜ˆ์™ธ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค

 

if (j == k) {
	bus[j][k] = 0;
	continue;
}
if (bus[j][i] && bus[i][k]){
	if (bus[j][k] == 0 && bus[j][i] + bus[i][k] == 0) {
		bus[j][k] = 0;
	}
	else if (bus[j][k] == 0) {
		bus[j][k] = bus[j][i] + bus[i][k];
	}
	else if (bus[j][i] + bus[i][k] == 0) {
		bus[j][k] = bus[j][k];
	}
	else {
		bus[j][k] = min(bus[j][k], bus[j][i] + bus[i][k]);
	}
}

 

ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ๋ฌธ์ œ๋Š” ์•„์ง ๋ช‡๊ฐ€์ง€ ํ’€์–ด๋ณธ ๊ฒƒ์ด ์—†์–ด์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ด๋ฅผ ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค

โ—๊ณต๋ถ€๊ฐ€ ๋” ํ•„์š”ํ• ๋“ฏโ—

 

 

๐ŸŒฑ ๋ฌธ์ œ ํ’€์ด ๊ฒฐ๊ณผ

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๋ฐฑ์ค€ 7662 _ ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ
    • ๋ฐฑ์ค€ 2217 _ ๋กœํ”„
    • ๋ฐฑ์ค€ 14889 _ ์Šคํƒ€ํŠธ์™€ ๋งํฌ
    • ๋ฐฑ์ค€ 11000 _ ๊ฐ•์˜์‹ค ๋ฐฐ์ •
    mooon๐ŸŒ™
    mooon๐ŸŒ™
    ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๊ธฐ๋ก

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