๐ง ์๊ณ ๋ฆฌ์ฆ31 [MST][๋ฐฑ์ค] 1197 ์ต์ ์คํจ๋ ํธ๋ฆฌ JS ํ์ด ๐ก ์ ๊ทผ๋ฒ 1. ๋ชจ๋ ๊ฐ์ ๋ค์ ๋น์ฉ์์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ 2. ๋น์ฉ์ด ์์ ๊ฐ์ ๋ถํฐ ์ ํํด์ ๋ ธ๋๋ค์ ๊ฐ์ ๊ทธ๋ํ๋ก ํฉ์ณ์ค. ๋ง์ฝ ๋ ๋ ธ๋๊ฐ ๊ฐ์ ๊ทธ๋ํ์ ํฌํจ๋์ด ์๋ค๋ฉด ๋์ด๊ฐ. 3. ํธ๋ฆฌ์ ๊ฐ์ ์ ๊ฐ์๊ฐ ์ ์ ์ ๊ฐ์-1์ด๋ฉด ๋ฐ๋ณต๋ฌธ break const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // ์ ๋ ฅ๊ฐ์ด ์ฒซ ๋ฒ์งธ ์ค์๋ ์ ๋ ฅ ๊ฐ์ ๊ธธ์ด(n), n๊ฐ์ ์ค์ ๊ฑธ์ณ์ ํ ์ค์ ํ๋์ ์ ๋ ฅ๊ฐ์ด ์ฃผ์ด์ง ๋ const [n, ...input] = require('fs') .readFileSync(filePath) .toString() .trim() .split('\n'); function solution(V, E, Lis.. 2023. 12. 28. MST ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ ์ฅ ํธ๋ฆฌ๋? : ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ๋ถ๋ถ ๊ทธ๋ํ ์ค ๋ชจ๋ ์ ์ ์ ํฌํจํ๋ ํธ๋ฆฌ ์ต์ ์ ์ฅ ํธ๋ฆฌ๋? : ๊ฐ์ ์ ํฉ์ด ์ต์์ธ ์ ์ฅ ํธ๋ฆฌ Union & Find ์๊ณ ๋ฆฌ์ฆ : ๋ ์ ์ ์ด ๊ฐ์ ๊ทธ๋ํ์ ์ํ๋์ง ํ๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ https://blog.naver.com/ndb796/221230967614 ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ 1. ๊ฐ์ ์ ํฌ๊ธฐ๋๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ ์ ์ผ ๋ฎ์ ๋น์ฉ์ ๊ฐ์ ์ ์ ํ 2. ํ์ฌ ์ ํํ ๊ฐ์ ์ด ์ ์ u,v๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ด๋ผ๊ณ ํ ๋ 1. ๋ง์ฝ u์ v๊ฐ ๊ฐ์ ๊ทธ๋ฃน์ด๋ผ๋ฉด ์๋ฌด ๊ฒ๋ ํ์ง ์๊ณ ๋์ด๊ฐ๋ค 2.๋ง์ฝ u์ v๊ฐ ๋ค๋ฅธ ๊ทธ๋ฃน์ด๋ผ๋ฉด ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ง๋ค๊ณ ํ์ฌ ์ ํํ ๊ฐ์ ์ ์ต์ ์ ์ฅ ํธ๋ฆฌ์ ์ถ๊ฐํ๋ค(union&find ์๊ณ ๋ฆฌ์ฆ.. 2023. 12. 28. [๋ฐฑ์ค] 7569 ํ ๋งํ js ํ์ด ๐ก ์ ๊ทผ๋ฒ ๋ฉฐ์น ์ด ์ง๋๋ฉด ํ ๋งํ ๋ค์ด ๋ชจ๋ ์ต๋์ง, ๊ทธ ์ต์ ์ผ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ ์ต์ ์ผ์๋ฅผ ๊ตฌํด์ผ ํ๊ณ , ์ต์ ํ ๋งํ ์ธ์ ํ ๋งํ ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ต์ผ๋๊น => BFS 1. ์ต์ ํ ๋งํ ๋ฅผ ๋ชจ๋ ํ์ ๋ฃ์ด์ค๋ค 2. ์ต์ ํ ๋งํ ์ ์ธ์ ํ๊ณ ์์ง ์ต์ง ์์ ํ ๋งํ ๋ ํ์ ๋ฃ์ด์ค๋ค 2-1. ๋ฐ์ค ์์๋ ํ์ธ 2-2. ๊ฐ์ ๋ฐ์ค์์ ์ํ์ข์ฐ ํ์ธ 3. ํ๊ฐ ๋น ๋๊น์ง ๋ฐ๋ณต class Node { constructor(val) { this.val = val; this.next = null; } } class Queue { constructor() { this.start = null; this.end = null; this.size = 0; } enqueue(val) { const newNode = ne.. 2023. 12. 28. [๋ฐฑ์ค] 4179 ๋ถ! js ํ์ด ๐ก ์ ๊ทผ๋ฐฉ์ - ๊ฐ์ฅ ๋นจ๋ฆฌ ํ์ถ ํ ์ ์๋ ์๊ฐ - ๋ถ์ ์ธ์ ์์ญ์ผ๋ก ์ด๋ -> BFS!! 1. ๋ถ์ด ๋ฒ์ง๋ ์๊ฐ์ ๋จผ์ bfs๋ก ๊ตฌํ๊ณ 2. ์งํ์ด๊ฐ ์ด๋ํ๋ ์๊ฐ์ด ๋ถ์ด ๋ฒ์ง๋ ์๊ฐ๋ณด๋ค ์งฆ์ผ๋ฉด ์ด๋ ๊ฐ๋ฅ class Node { constructor(value) { this.value = value; this.next = null; } } class Queue { constructor() { this.first = null; this.last = null; this.size = 0; } enqueue(val) { const newNode = new Node(val); if (!this.first) { this.first = newNode; this.last = newNode; } else { thi.. 2023. 12. 27. [BFS][๋ฐฑ์ค] 7576 ํ ๋งํ js ํ์ด ์ฐ์ ์๊ฐ์ด๊ณผ๋ก ์ฐพ์์ค์ ๋ถ!!! queue๋ฅผ ์ง์ ๊ตฌํํ์ง ์๊ณ ๋ฐฐ์ด ๋ฉ์๋ shift ์ฐ์๋ฉด ์๊ฐ ์ด๊ณผ๋ฉ๋๋ค ใ ใ ๐ก์ ๊ทผ๋ฐฉ๋ฒ - ์ต์ ์ผ์๋ฅผ ๊ตฌํ๋ ๊ฒ - ์ธ์ ํ ๋งํ ๋ค์ด ๋จผ์ ์ต๋ ๊ฒ -> BFS๋ค!! 1. ์ฐฝ๊ณ ์์ ์ต์ด ์๋ ํ ๋งํ ๋ค์ ์ฐพ์์ ํ์ ๋ฃ๊ณ 2. ์ต์ด ์๋ ํ ๋งํ ์ ์ธ์ ํ ๋งํ ๋ค์ด ์ต๋๋ก BFS๋ก ํ์ class Node { constructor(value) { this.value = value; this.next = null; } } class Queue { constructor() { this.first = null; this.last = null; this.size = 0; } enqueue(val) { var newNode = new Node(val); if (!this.fi.. 2023. 12. 27. ๋ฐฑ์ค JS ์ ๋ ฅ๊ฐ ํ ํ๋ฆฟ(VSCode ์ค๋ํซ์ผ๋ก ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ) ๋ฐฑ์ค์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์ ๋ ฅ๊ฐ์ ๋ฐ๋ ๊ฒ ๋๋ฌด ๊ท์ฐฎ์๋๋ฐ vscode์์ ์ค๋ํซ์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋๊น ๋๋ฌด ํธํ๋๋ผ๊ตฌ์ ์ง์ bjt๋ง ์ ๋ ฅํ๋ฉด ์๋์ผ๋ก ์ ๋ ฅ๊ฐ ํ ํ๋ฆฟ์ด ์์ฑ๋ฉ๋๋ค! ๋ฐฉ๋ฒ 1. ํ๋จ ํฑ๋๋ฐํด๋ฅผ ๋๋ฅด๋ฉด user snippets๋ ๋ฉ๋ด๊ฐ ๋์ต๋๋ค 2. ํด๋ฆญํด์ฃผ์๋ฉด ์ํ๋ ์ธ์ด๋ฅผ ์ ํํ์ค ์ ์์ต๋๋ค. ์ ๊ฐ์ ๊ฒฝ์ฐ๋ js๋ฅผ ์ ํํ์ด์ 3. json ํ์์ผ๋ก ์ค๋ํซ์ ๋ฃ๊ณ ์ ์ฅํด์ค๋๋ค 4. ์ด์ bjt๋ง ์ ๋ ฅํ๋ฉด ์๋์์ฑ๋ฉ๋๋ค! ์ฝ๋๋ ์ฃผ์์ฒ๋ฆฌ๋์ด ์์ผ๋ ํ์ํ ๊ฑธ๋ก ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค json์ ๋ค์ด๊ฐ ๊ฐ "Baekjoon JS Template": { "prefix": "bjt", "body": [ "const filePath = process.platform === 'linux' ? '/dev/s.. 2023. 12. 27. ์ด์ 1 2 3 4 5 6 ๋ค์