The Floyd-Warshall Algorithm ๋ชจ๋ ์ ์ ์์ ๋ํด ๋ ์ฌ์ด์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ Dijkstra/Bellman-Ford ๋ฅผ ๋ฐ๋ณตํด์ ๊ตฌํ ์๋ ์์ ๊ฒฝ์ ์ : ๋ ์ ์ u์ v๋ฅผ ์๋ ์ด๋ค ๊ฒฝ๋ก๊ฐ ์๋ค๊ณ ๊ฐ์ ํ ๋, u์ v ์ฌ์ด์ ์๋ ๋ค๋ฅธ ์ ์ 1. ๊ฒฝ์ ์ k๋ฅผ ์ ์ธํ S - {k} ๋ ธ๋ ์ค ์๋ก ๋ค๋ฅธ ๋ ธ๋ U, V ์ ํ (S = ์ ์ ์งํฉ์ผ ๋ k, U, V ∈ S) 2. U → k → V์ ๋น์ฉ ํ์ธ ํ ์ต๋จ๊ฑฐ๋ฆฌ ๊ฐฑ์ ์ง์ ํด๋ณด๊ธฐ ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก๋ค๊ณ ํด๋ณด์. Floyd-Warshall ์๊ณ ๋ฆฌ์ฆ์ Dijkstra์ ๋ค๋ฅด๊ฒ ๋ชจ๋ ๊ทธ๋ํ์ ๋ชจ๋ ์ ์ ์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํด์ผํ๋ฏ๋ก 2์ฐจ์ ๋ฐฐ์ด์ด ํ์ํ๋ค ์ด๊ธฐํ ํ ๋์๋ if from == to, then ..
(๋ญ ๋์ถฉ ์ค์ํ๋ค๋ ๋ด์ฉใ ) ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ ํ ๋ ๊ฐ์ฅ ๋ง์ด ์ธ๊ธ๋๊ณ ํ์ฉ๋๋ ์ผ๋์ฅ์ด ์์ฃ ? ๋ค์ต์คํธ๋ผ ๋ฒจ๋งํฌ๋ ํ๋ก์ด๋ ์ํฉ์ ๋ง๊ฒ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๋ ํ ๋ฐ ์ธ์ , ๋ฌด์์ ์ ํํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด 3๊ฐ์ง๋ฅผ ๋ ์ฌ๋ ค๋ด ์๋ค. ๋ฌธ์ ๋ฅผ ๊ทธ๋ํํ ํ๋ ๊ฒ์ ์ฑ๊ณตํ์ จ๋ค๋ฉด ์ด์ ์ด 3๊ฐ์ง ํ๋ฆ์ ์๊ฐํด ๋ด ์๋ค. ๊ฐ์ค์น๊ฐ ์๋๊ฐ? : ๊ฐ์ค์น๊ฐ ์๋ค๋ฉด BFS๋ก ํด๊ฒฐ ๊ฐ๋ฅ ์์๊ฐ์ ์ด ์๋๊ฐ? : weight์ ์์ ๊ฐ์ด ์๋ค๋ฉด ๋ฒจ๋งํฌ๋ ๋จ์ผ ์์์ ์ ๊ฐ๋๊ฐ? : ๋จ์ผ ์์์ ์ด ์ฃผ์ด์ง๋ค๋ฉด ๋ค์ต์คํธ๋ผ, ๋ชจ๋ ์ ์ ๋ค์ ์์ ๋ํ ๊ฒฝ๋ก ๊ฐ์ ์๊ณ ์ถ๋ค๋ฉด ํ๋ก์ด๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ฉด ๋๋์ง ์ ํํ์ จ๋ค๋ฉด ๊ฐ ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ๋ ์ ์ง์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ค๋์ Dijkstra Algorithm์ ๋ํด ๋จผ์ ์ด..
์ด ๊ธ์์๋ ํ๋ก๊ทธ๋๋จธ์ค์ Level 1 ๋ฌธ์ ์ค ๊ผญ ํ ๋ฒ์ ๋ค๋ฃจ๊ณ ๋์ด๊ฐ์ผ๋ฉด ์ข๊ฒ ๋ ๋ฌธ์ ๋ค์ ๋ํด ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฌธ์ ํ์ด๋ C++๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ ํจ๊ป ๋ค์ด๊ฐ ์๋ ๊ฐ๋ ๋ค๋ ๊ฐ๋จํ ์ ๋ฆฌ ํด๋ณด๋ ํ์์ผ๋ก ์์ฑ๋์์ผ๋ฏ๋ก ์คํ๋ฑ์ ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ์ค๋ฅ ๋ฐ๊ฒฌ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? ์ผ๋จ ์์ํ๊ธฐ ์ , ํ๋ก๊ทธ๋๋จธ์ค Level 1 ๋ฌธ์ ์๋ [2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ : ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์] [2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ 1์ฐจ : ๋น๋ฐ์ง๋, ๋คํธ๊ฒ์] [2019 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ 1์ฐจ : ์คํจ์จ] [2018 summer/winter coding : ์์ฐ]์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ค์ ์ ํ์ ์ผ๋ก ํ์ด๋ณด๋ ๊ฒ์ด ์๋ ๋ฐ๋์ ํ์ด๋ณด์์ผ ํ ๋ฌธ์ ์ผํ ๋ ๋ฐ๋ก ..
[6190] : ์ ๊ณค์ด์ ๋จ์กฐ ์ฆ๊ฐํ๋ ์ ์ ๋ ฅ : N๊ฐ์ ์ ์ → ๊ฐ๋ฅํ ๊ณฑ์ ์กฐํฉ์ ์์๋ณด๋๊น ๊ณ์ ๋ ์ธ๋ฑ์ฑ์ด ํ์ํ๋ฏ๋ก ๋ฒกํฐ๋ณด๋ค๋ ๋ฐฐ์ด์ด ๋ ์ ํฉ ์ถ๋ ฅ : ๋จ์กฐ์ฆ๊ฐ ์ ์ค ๊ฐ์ฅ ํฐ ๊ณฑ์ ์กฐํฉ (์์ผ๋ฉด -1) ์ ๋ต ๋จ์กฐ ์ฆ๊ฐํ๋ ์ ํ๋ณ ๋ฒ : 10์ผ๋ก ๋๋์ด๋ณด์์ ๋ ์ง์ ๋๋จธ์ง๊ฐ ํ์ฌ ๋๋จธ์ง๋ณด๋ค ์ปค์ผ ํจ 10๋ณด๋ค ์์ ์๋ ๋จ์กฐ ์ฆ๊ฐ๋ก ํ๋จํ๋ฏ๋ก do-while ์ฌ์ฉ #include using namespace std; bool isItIncreasingNum(int); int main(void){ int testCase; cin >> testCase; for(int tc = 1; tc > N; int *numArr = new int[..
[6730] : ์ฅ์ ๋ฌผ ๊ฒฝ์ฃผ ๋์ด๋ ์ ๋ ฅ : ๋ธ๋ก์ ๋์ด๋ค → ๊ณ ์ ๋ ๊ฐ์ด๊ณ , ์ฝ์ ์ญ์ ๊ฐ ์ผ์ด๋์ง ์์ ์์ ์ด๋ฏ๋ก ๋ฐฐ์ด(: blocks)์ ์ฌ์ฉ ์ถ๋ ฅ : 1) ์ฌ๋ผ๊ฐ ๋ ๊ฐ์ฅ ์ฌํ ๋์ด ๋ณํ 2) ๋ด๋ ค๊ฐ ๋ ๊ฐ์ฅ ์ฌํ ๋์ด ๋ณํ ์ ๋ต blocks[i - 1]๊ณผ blocks[i]๋ฅผ ๋น๊ตํด์ up์ธ์ง down์ธ์ง ํ๋ณ ๋ฐฉ๊ธ ๋น๊ตํ up / down์ด maxUp / maxDown ๋ณด๋ค ํฐ์ง ํ๋ณํด์ ์ ๋ฐ์ดํธ #include using namespace std; int main(void){ int testCase; cin >> testCase; for(int t = 0; t > blockCount; // blo..
[1970] : ์ฌ์ด ๊ฑฐ์ค๋ฆ๋ #include using namespace std; void getChange(int); int main(void){ int testCase; cin >> testCase; for(int test = 0; test > changeM; getChange(changeM); } return 0; } void getChange(int money){ int mType[8]{0,}; int static trial = 1; while(money > 9){ if(money >= 50000){ mType[0] += 1; money -= 50000; } else if(money >= 10000){ mType[1] += 1..
[1859] : ๋ฐฑ๋ง ์ฅ์ ํ๋ก์ ํธ #include using namespace std; int main(void) { int testCase; int day; cin >> testCase; long * ans = new long[testCase]; for (int i = 0; i > day; long * price = new long[day]; long total = 0; for (int j = 0; j > price[j]; long max = price[day - 1]; for (int j = day - 2; j > -1; j--) if (price[j] < max) total += (max - price[j]); else ma..
[1986] : ์ง๊ทธ์ฌ๊ทธ ์ซ์ #include #include #include using namespace std; vector answer; void printAnswer(int); int main(void){ int testCase; cin >> testCase; for(int test = 0; test > num; for(int n = 1; n < num + 1; n++){ if(n % 2 == 0) sum -= n; else sum += n; } answer.push_back(sum); } printAnswer(testCase); return 0; } void printAnswer(int testCase){ for(in..
[2046] : ์คํฌํ ์ฐ๊ธฐ #include using namespace std; int main(void){ int N; cin >> N; for(int i = 0; i input; int i = 0, c; while((c = input[i])){ putchar(toupper(c)); i++; } } [2050] : ์ํ๋ฒณ์ ์ซ์๋ก ๋ณํ #include #include using namespace std; int main(void){ string input; cin >> input; int size = input.length(); for(int i = 0; i < size; i++) cout N; string dates[N], ans[N]; for(int i = 0; i ..
- Total
- Today
- Yesterday
- ์ปด๊ณผ์กธ์
- ์ผ์ฑ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ถ์บ
- ์ปด๊ณต์กธ์
- nosql
- ์ผ์ฑ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- ์กธ์ ์ํ
- swacademy
- ๋ณด์
- TableView
- ios
- ์ธํด
- ๊ฐ๋ฐ์์ธํด
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถ์คํธ์บ ํ2020
- ์ฝํ
- OS
- C++
- ์ด์์ฒด์
- ๋ฐ์ดํฐ๋ถ์
- ์ํํธ์จ์ด์ญ๋์ํ
- ์ฝ๋ฉํ ์คํธ
- ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- RxSwift
- ์ปดํจํฐ๊ณตํ
- ๋ถ์คํธ์บ ํ
- firebase
- SWIFT
- ์ปค๋ฅํธ์ฌ๋จ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |