๋ฐ˜์‘ํ˜•
JuneBee
JuneBee
JuneBee
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (103)
    • ๐Ÿ‘” JOB (10)
      • ์ „ํ˜• ํ›„๊ธฐ (10)
    • ๐ŸŽฎ GAME (9)
      • ์ ค๋‹ค | ์™•๊ตญ์˜ ๋ˆˆ๋ฌผ ๊ฒŒ์ž„ ์ผ๊ธฐ (9)
    • ๐Ÿ““ STUDY (60)
      • JAVA (15)
      • TIL (2)
      • FASTCAMPUS (32)
      • ํ™˜๊ฒฝ์„ค์ • (2)
      • YOCTO (1)
      • OS (4)
      • ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์ธ ์•ก์…˜ (2)
    • ๐ŸŽงDAILY (6)
    • ๐Ÿ‡ฉ๐Ÿ‡ช GERMAN (18)
      • ๋Œ€ํ•™์› ์ง€์› (3)
      • ์ง€์› ํ›„๊ธฐ (11)
      • ๋…์ผ์–ด ์‹œํ—˜ (4)

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

  • ํ™ˆ
  • ์ผ์ƒ

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • bruteforce
  • ์™•๊ตญ์˜๋ˆˆ๋ฌผ
  • ๊ฒŒ์ž„์ผ๊ธฐ
  • ํŒจ์ŠคํŠธ์บ ํผ์Šคํ›„๊ธฐ
  • ํ”Œ๋ ˆ์ด์ผ๊ธฐ
  • ํ•œ๋ฒˆ์—๋๋‚ด๋Š”์ฝ”๋”ฉํ…Œ์ŠคํŠธ369JavaํŽธ์ดˆ๊ฒฉ์ฐจํŒจํ‚ค์ง€Online.
  • ์‹ธํ”ผ
  • sort
  • ๋ชจํ—˜์ผ๊ธฐ
  • ์ •๋ ฌ
  • ์ง์žฅ์ธ์ธ๊ฐ•
  • ๋…์ผ์œ ํ•™
  • ์ทจ์—…์ค€๋น„
  • SSAFY
  • ์ ค๋‹ค
  • C/C++
  • ๋ฐฑํŠธ๋ž˜ํ‚น
  • ์ง์žฅ์ธ์ž๊ธฐ๊ณ„๋ฐœ
  • ์™•๋ˆˆ
  • ๋…์ผ
  • Java
  • ์„์‚ฌ
  • ์ž๋ฃŒ๊ตฌ์กฐ
  • ์œ ํ•™
  • ํฌ๋ฃจ์Šค์นผ
  • telc
  • ๋…์ผ์–ด
  • B1
  • ํŒจ์ŠคํŠธ์บ ํผ์Šค
  • ํŒจ์บ ์ฑŒ๋ฆฐ์ง€

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

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

JuneBee

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 6์ผ์ฐจ
๐Ÿ““ STUDY/FASTCAMPUS

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 6์ผ์ฐจ

2021. 11. 6. 21:22
728x90
๋ฐ˜์‘ํ˜•

๋‚ ์งœ : 2021 ๋…„ 11 ์›” 6 ์ผ
์‹œ์ฒญ ๊ฐ•์˜ : ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1), ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (2)

์˜ค๋Š˜ ์‹œ์ฒญํ•œ ๊ฐ•์˜๋Š” ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋‚ด๊ฐ€ ๋ญ˜๋“ค์€๊ฑด๊ฐ€์‹ถ๋‹ค ์ฃผ๋ฅด๋ฅต..

ํฌ๋ฃจ์Šค์นผ์€ ์ดํ•ด๊ฐ€ ์ข€ ๋ฌ๋Š”๋ฐ ์—ญ์‹œ ์˜›๋‚ ๋ถ€ํ„ฐ ํฌ๊ธฐํ•œ ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฐจ์›์ด ๋‹ฌ๋ž๋‹ค..

์ผ๋‹จ ๊ฐœ๋…๋งŒ ์ดํ•ดํ•˜๊ณ  ์ฝ”๋“œ๋Š” ๋‚˜์ค‘์— ์ดํ•ดํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค.

ํฌ๋ฃจ์Šค์นผ vs ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜

1. ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๊ฐ„์„  ์ •๋ณด๋ฅผ ์ •๋ ฌ -> ๊ฐ€์žฅ ๊ฐ€์ค‘์น˜๊ฐ€ ๋‚ฎ์€ ๊ฐ„์„ ๋ถ€ํ„ฐ ์‚ฌ์ดํด์ด ์ƒ๊ธฐ์ง€ ์•Š๋„๋ก ์—ฐ๊ฒฐ

2. ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์‹œ์ž‘ ์ •์ ์„ ์„ ํƒ -> ์ •์ ์˜ ์ธ์ ‘ ๊ฐ„์„  ์ค‘ ๊ฐ€์ค‘์น˜๊ฐ€ ์ตœ์†Œ์ธ ๊ฐ„์„ ์„ ์—ฐ๊ฒฐ

 

ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜

https://www.cs.usfca.edu/~galles/visualization/Prim.html

 

Prim MST Visualzation

 

www.cs.usfca.edu

์œ„ ์‚ฌ์ดํŠธ์— ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•ด ๋ณด๋ฉด ๋„์›€์ด ๋งŽ์ด ๋˜๋‹ˆ ์ฐธ๊ณ ํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : PNGWing

๊ตฌ๊ธ€๋กœ ๊ฒ€์ƒ‰ํ•ด์„œ ๋Œ€์ถฉ ์•„๋ฌด ๊ทธ๋ž˜ํ”„ ์‚ฌ์ง„์„ ๊ฐ€์ ธ์™€๋ดค๋‹ค.

ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€, ์ž„์˜์˜ ์ •์ ์„ ์„ ํƒํ•˜์—ฌ ๊ทธ์™€ ์—ฐ๊ฒฐ๋œ ๊ฐ„์„  ์ค‘ ๊ฐ€์ค‘์น˜๊ฐ€ ์ž‘์€ ์ •์ ์„ ์„ ํƒํ•˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ ๊ทธ๋ž˜ํ”„์— ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด๋ณด๋ฉด,

1. "A" ์„ ํƒ : A-B(12), A-D(5) -> D ๋…ธ๋“œ๋ฅผ ์„ ํƒ

2. "A- D " : A-B(12), D-B(10), D-E(15) , D-F(6) -> F ๋…ธ๋“œ๋ฅผ ์„ ํƒ

3. "A - D - F " : A-B (12), D-B (10), D-E(15) , F-E(1) , F-G (11) -> E๋…ธ๋“œ ์„ ํƒ

4. "A- D- F - E " : A-B (12), D-B (10), D-E(15) , F-G (11), E-B(7) , E-C(2),  E-G(9)  ->C๋…ธ๋“œ ์„ ํƒ

5. "A- D- F - E - C" : A-B (12), D-B (10), D-E(15) , F-G (11), E-B(7) ,  E-G(9)  , C-B(8) -> E์™€ ์—ฐ๊ฒฐ๋œ B๋…ธ๋“œ ์„ ํƒ

G๋งŒ ์—ฐ๊ฒฐํ•˜๋ฉด ๋๋‚จ : ๊ฐ€์ค‘์น˜๊ฐ€ ์ž‘์€ E์™€ ์—ฐ๊ฒฐ

A - D - F - E- C- G ๋…ธ๋“œ๋ฅผ ์ „๋ถ€ ์—ฐ๊ฒฐ : ์ตœ์ข… ๊ฐ€์ค‘์น˜ : 5 + 6 + 1 + 2 + 7 + 9 = 30 ์ด ๋œ๋‹ค

 

 

 

ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„

1. ์ž„์˜์˜ ์ •์  ์„ ํƒ -> ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ ์ง‘ํ•ฉ์— ์‚ฝ์ž…
2. ์„ ํƒ ์ •์ ์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์„ ๊ฐ„์„  ๋ฆฌ์ŠคํŠธ์— ์‚ฝ์ž… -> ๊ฐ€์ค‘์น˜๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ edge ์ถ”์ถœ
   if ๊ฐ„์„ ์— ์—ฐ๊ฒฐ๋œ ์ธ์ ‘ ์ •์ ์ด ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ ์ง‘ํ•ฉ์— ์žˆ๋‹ค๋ฉด ์‚ฌ์ดํด์ด ์ƒ๊ธฐ๋ฏ€๋กœ ์„ ํƒ ์•ˆํ•จ
   else ๊ฐ„์„ ์„ ์—ฐ๊ฒฐํ•˜๊ณ  mst์— ๊ฐ„์„  ์ •๋ณด ์‚ฝ์ž…
3. ์ถ”์ถœํ•œ ๊ฐ„์„ ์„ ๋ฆฌ์ŠคํŠธ์—์„œ pop
4. ๊ฐ„์„  ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋นŒ๋•Œ๊นŒ์ง€ 2-3 ์„ ๋ฐ˜๋ณต

 

๊ตฌํ˜„์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ

๋…ธ๋“œ ํด๋ž˜์Šค

public static class Node implements Comparable<Node>{
	int weight, node1, node2;
    //setter method ๊ตฌํ˜„
    @Override
    public int compareTo(Node node){
    	return this.weight - node.weight;
    }
}

 

Priority Queue์‚ฌ์šฉ

๋‹ค์ต์ŠคํŠธ๋ฆฌ์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋•Œ์ฒ˜๋Ÿผ, ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํž™์„ ๊ตฌํ˜„ํ•œ๋‹ค

import java.util.PriorityQueue;

ํ ์ƒ์„ฑ ๋ฐ ์ถ”๊ฐ€

PriorityQueue<Node> p = new PriorityQueue<>();
p.offer(new Node (2 , "a", "b")); //๊ฐ€์ค‘์น˜ : 2, ์—ฐ๊ฒฐ๋œ ๋‘ ๋…ธ๋“œ

 

HashMap ์‚ฌ์šฉ

Hashmap์˜ containsKey() ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๊ฐ„์„ ์— ์—ฐ๊ฒฐ๋œ ์ธ์ ‘ ์ •์ ์ด ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ ์ง‘ํ•ฉ์— ์ด๋ฏธ ์žˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

HashMap<String, ArrayList<Node>> graph = new HashMap<>();
graph.put("a", new ArrayList<Node> ()); // a๋ฅผ ํ•ด์‰ฌ๋งต์— ์‚ฝ์ž…
// ํ›„์— a๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
graph.getOrDefault("a", new ArrayList<Node>());

 

์ž๋ฐ” ์ฝ”๋“œ ๊ตฌํ˜„

์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ฝค ๋งŽ์•„์„œ ๋ณต์žกํ•˜๋‹ค..

๋จผ์ €, ๋Œ€๋žต์ ์ธ ์ฝ”๋“œ์˜ ํ๋ฆ„์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

import java.util.HashMap;
import java.util.PriorityQueue;

public class PrimPath {
	//declare lists
    //Node class
    
    public ArrayList<Node> prime(String startNode, ArrayList<Node> ndoes){
    	//๋ฆฌ์ŠคํŠธ ์„ ์–ธ
        //priority ํ ์„ ์–ธ
    
    	//์ดˆ๊ธฐํ™”
        //๊ฐ ๋…ธ๋“œ๋งˆ๋‹ค ์—ฐ๊ฒฐ๋œ ๊ฐ„์„  ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€
        //์šฐ์„ ์ˆœ์œ„ํ์— candiateEdgeList๋ฅผ ์ถ”๊ฐ€
        //์šฐ์„ ์ˆœ์œ„ํ๊ฐ€ ๋นŒ๋•Œ๊นŒ์ง€ 2-3 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ˜๋ณต
    }
}

 

๊ฐ•์˜ ์™ธ์— ๋‹ค๋ฅธ ์ž๋ฃŒ๋“ค์„ ์ฐพ์•„๋ณด๊ณ  ์ข€ ๋” ์‰ฌ์šด ๋ฐฉ์‹์ด ์žˆ๋‹ค๋ฉด ๋‹ค์‹œ ์ž๋ฐ” ์ฝ”๋“œ ๊ตฌํ˜„์„ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ๋‹ค.

๊ฐ•์˜ ์ฝ”๋“œ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ์“ฐ์—ฌ์„œ ๋ณต์žกํ•œ๊ฒƒ ๊ฐ™๋‹ค.

 


ํŒจ์ŠคํŠธ์บ ํผ์Šค ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€ ๋ฐ”๋กœ๊ฐ€๊ธฐ๐Ÿ‘‰ https://bit.ly/3FVdhDa

 

์ˆ˜๊ฐ•๋ฃŒ 100% ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€ | ํŒจ์ŠคํŠธ์บ ํผ์Šค

๋”ฑ 5์ผ๊ฐ„ ์ง„ํ–‰๋˜๋Š” ํ™˜๊ธ‰์ฑŒ๋ฆฐ์ง€๋กœ ์ˆ˜๊ฐ•๋ฃŒ 100% ํ™˜๊ธ‰๋ฐ›์œผ์„ธ์š”! ๋” ๋Šฆ๊ธฐ์ „์— ์ž๊ธฐ๊ณ„๋ฐœ ๋ง‰์ฐจ ํƒ‘์Šน!

fastcampus.co.kr

๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€ ์ฐธ์—ฌ๋ฅผ ์œ„ํ•ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ““ STUDY > FASTCAMPUS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 8์ผ์ฐจ  (0) 2021.11.08
ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 7์ผ์ฐจ  (0) 2021.11.07
ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 5์ผ์ฐจ  (0) 2021.11.05
ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 4์ผ์ฐจ  (0) 2021.11.04
ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 3์ผ์ฐจ  (2) 2021.11.03
    '๐Ÿ““ STUDY/FASTCAMPUS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 8์ผ์ฐจ
    • ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 7์ผ์ฐจ
    • ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 5์ผ์ฐจ
    • ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ฑŒ๋ฆฐ์ง€ 4์ผ์ฐจ
    JuneBee
    JuneBee
    โ‚Šหš.๐ŸŽง๐Ÿ““ ๊ธฐ๋ก์šฉ ๋ธ”๋กœ๊ทธ ๐“‚ƒ๐Ÿ–Š

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