glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

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

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • bfs
  • c++
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • ์ด๋ถ„ํƒ์ƒ‰
  • DP
  • brute-force
  • binary search
  • BOJ
  • ps
  • Algorithm
  • ๋™์ ๊ณ„ํš๋ฒ•
  • Baekjoon
  • mst
  • boostcampaitech
  • Java
  • Stack
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • Python
  • ์™„์ „ํƒ์ƒ‰

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 1922 ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 1922 ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ

2020. 11. 19. 17:13

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.


 

 

๐Ÿ’ฃ ๋ฌธ์ œ ์ดํ•ด

 

 

์ปดํ“จํ„ฐ๋ฅผ ๋…ธ๋“œ๋กœ, ์„  ์—ฐ๊ฒฐ์„ ๊ฐ„์„ ์œผ๋กœ ๋ณด๊ณ  ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST)์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

ํ‹€์€ ๋ฐ”๋€Œ์—ˆ์ง€๋งŒ 1197๋ฒˆ ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ ์™€ ๊ทธ๋ƒฅ ๋™์ผํ•˜๊ฒŒ ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ์ด๋‹ค.

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜/ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

 

์ด ๋ฌธ์ œ๋Š” ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์ดํ–ˆ๋‹ค.

 

 

๐Ÿ’ญ ํ’€์ด ๊ณผ์ •

 

 

 

์ž‘์„ฑ ์–ธ์–ด: C++

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

class Line {
public:
    int start, dest, weight;
    
    Line(int start, int dest, int weight) {
        this->start = start;
        this->dest = dest;
        this->weight = weight;
    }
};

const int MAX = 1001;
int com_cnt, line_cnt;
vector<Line> lines;
int parent[MAX] = {0, };
int depth[MAX] = {0, };

// ์ดˆ๊ธฐ ์„ค์ •
void initialize() {
    for (int i = 0; i <= com_cnt; ++i) {
        parent[i] = i;
        depth[i] = 1;
    }
}

// ๊ฐ€์ค‘์น˜์— ๋”ฐ๋ฅธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
bool compare(const Line &l1, const Line &l2) {
    return l1.weight < l2.weight;
}

// root ๋…ธ๋“œ ์ฐพ๊ธฐ
int findRoot(int node) {
    if (node == parent[node])   return node;
    return parent[node] = findRoot(parent[node]);
}

// ํŠธ๋ฆฌ ํ•ฉ๋ณ‘
void mergeTree(const int node1, const int node2) {
    if (depth[node1] < depth[node2]) {
        depth[node2] += depth[node1];
        depth[node1] = 0;
        parent[node1] = node2;
    }else {
        depth[node1] += depth[node2];
        depth[node2] = 0;
        parent[node2] = node1;
    }
}


int main() {
    int result = 0;
    cin >> com_cnt;
    cin >> line_cnt;
    for (int i = 0; i < line_cnt; ++i) {
        int a, b, c;
        cin >> a >> b >> c;
        lines.push_back(Line(a, b, c));
    }
    
    // ๊ฐ€์ค‘์น˜ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
    sort(lines.begin(), lines.end(), compare);
    
    // parent, depth ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”
    initialize();
    
    for (int i = 0; i < line_cnt; ++i) {
        int start_root = findRoot(lines[i].start);
        int dest_root = findRoot(lines[i].dest);
        
        if (start_root != dest_root) {
            result += lines[i].weight;
            mergeTree(start_root, dest_root);
        }
    }
    
    cout << result << endl;
    
    return 0;
}

 

 

๐Ÿ† ๋ฐฐ์šด ์ 

 

 

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ์–ด๋ ค์šด ๋ฌธํ•ญ๋“ค ์ค‘ ๊ผญ ํ•œ ๋ฌธ์ œ ์”ฉ์€ ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ ๋˜๋Š” ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST)์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๊ณค ํ–ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… ๊ณผ์ œ๋กœ Kruskal, Prim ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ‘ํ•˜๋ฉด์„œ ๋ฐฑ์ค€์œผ๋กœ ์—ฐ์Šตํ•˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ํ’€์–ด๋ณด์•˜๋‹ค.

DFS, BFS ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ด ์œ ํ˜•์ด ์ต์ˆ™ํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๋‹ค์–‘ํ•˜๊ฒŒ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค!!!

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

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ / ์ตœ๋‹จ ๊ฒฝ๋กœ, ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2020.11.21
[BOJ] ๋ฐฑ์ค€ 1647 ๋„์‹œ ๋ถ„ํ•  ๊ณ„ํš / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ  (0) 2020.11.20
[BOJ] ๋ฐฑ์ค€ 14503 ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ / ๊ตฌํ˜„  (0) 2020.11.06
[BOJ] ๋ฐฑ์ค€ 2606 ๋ฐ”์ด๋Ÿฌ์Šค / ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)  (0) 2020.11.05
[2020 KAKAO BLIND RECRUITMENT] ๋ฌธ์ž์—ด ์••์ถ•  (0) 2020.09.01
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ / ์ตœ๋‹จ ๊ฒฝ๋กœ, ๋‹ค์ต์ŠคํŠธ๋ผ
    • [BOJ] ๋ฐฑ์ค€ 1647 ๋„์‹œ ๋ถ„ํ•  ๊ณ„ํš / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ
    • [BOJ] ๋ฐฑ์ค€ 14503 ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ / ๊ตฌํ˜„
    • [BOJ] ๋ฐฑ์ค€ 2606 ๋ฐ”์ด๋Ÿฌ์Šค / ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)
    glowing713
    glowing713

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