๐ง ์๊ณ ๋ฆฌ์ฆ/์ ํ๋ณ ๋ํ๋ฌธ์ 5 [๋ค์ต์คํธ๋ผ][๋ฐฑ์ค] 117799 ์ต์๋น์ฉ ๊ตฌํ๊ธฐ2 JS ๋ฌธ์ ๋งํฌ ํ ๋ ธ๋์์ ๋ค๋ฅธ ๋ ธ๋๊น์ง์ ์ต์ ๋น์ฉ์ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค์ต์คํธ๋ผ! ๋ค์ต์คํธ๋ผ : ํ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต์ ๋น์ฉ์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ค์ต์คํธ๋ผ๋ ์ฐ์ ์์ํ๋ฅผ ์ฌ์ฉํ๋๋ฐ JS์๋ ์ฐ์ ์์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ง์ ๊ตฌํ ์ ๊ทผ ๋ฐฉ๋ฒ 1. ๋ฒ์ค ์ ๋ณด ์ธ์ ๋ฆฌ์คํธ, ๊ฐ ๋ ธ๋๊น์ง์ ์ต์ ๋น์ฉ์ ์ ์ฅํ ๋ฐฐ์ด(minArr), ์ด์ ์ ๋ฐฉ๋ฌธํ ๋ ธ๋๋ฅผ ์ ์ฅํ ๋ฐฐ์ด(pre)์ ๋ง๋ ๋ค. 2. ์ฐ์ ์์ ํ์ ์์ ๋ ธ๋๋ฅผ ๋ฃ์ด์ค๋ค 3. ํ๊ฐ ๋น ๋๊น์ง ๋ ธ๋๋ฅผ ๊บผ๋ด์ minArr์ pre๋ฐฐ์ด์ ์ ๋ฐ์ดํธ ํ๋ค 3๋ฒ์์ ๋ฐฐ์ด๋ค์ ์ ๋ฐ์ดํธ ํ ๋ 1. minArr์ ์๋ ๊ฐ์ด ์ฐ์ ์์ ํ์์ ๊บผ๋ธ ๊ฐ๋ณด๋ค ์์ ๊ฒฝ์ฐ, ๊บผ๋ธ ๊ฐ์ ์ต์ ๋น์ฉ์ด ์๋์ผ๋ก continue; 2. minArr์ ์๋ ๊ฐ๋ณด๋ค ์ฐ์ ์.. 2024. 1. 10. [์์์ ๋ ฌ][๋ฐฑ์ค] 2252 JS ํ์ด ์์์ ๋ ฌ : ๋ฐฉํฅ ๊ทธ๋ํ์์ ๋ ธ๋๋ค๊ฐ ์ ํ ์์๋ฅผ ์๋ฐฐํ์ง ์๊ณ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ๋ฒ 1. ๋งจ ์ฒ์ ๋ชจ๋ ๊ฐ์ ์ ์ฝ์ผ๋ฉฐ indegree ํ ์ด๋ธ์ ์ฑ์ด๋ค 2. indegree๊ฐ 0์ธ ์ ์ ๋ค์ ๋ชจ๋ ํ์ ๋ฃ๋๋ค 3. ํ์์ ์ ์ ์ ๊บผ๋ด์ด ์์ ์ ๋ ฌ ๊ฒฐ๊ณผ์ ์ถ๊ฐํ๋ค 4. ํด๋น ์ ์ ์ผ๋ก๋ถํฐ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ ์ ์ indegree ๊ฐ์ 1 ๊ฐ์์ํจ๋ค. ์ด ๋ indegree๊ฐ 0์ด ๋์๋ค๋ฉด ๊ทธ ์ ์ ์ ํ์ ์ถ๊ฐํ๋ค 5. ํ๊ฐ ๋น ๋๊น์ง 3,4๋ฒ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค ์ข ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ๋ค๋ฉด ์ถ์ฒ: ๋ฐํน๋ ๋ธ๋ก๊ทธ https://blog.encrypted.gg/1020 ์์ ์ ๋ ฌ ๋ฌธ์ ์ ์ ์ฉํ๊ธฐ ๋ฌธ์ N๋ช ์ ํ์๋ค์ ํค ์์๋๋ก ์ค์ ์ธ์ฐ๋ ค๊ณ ํ๋ค. ๊ฐ ํ์์ ํค๋ฅผ ์ง์ ์ฌ์ ์ ๋ ฌํ๋ฉด ๊ฐ๋จํ๊ฒ ์ง๋ง, ๋ง๋ ํ ๋ฐฉ๋ฒ์ด .. 2023. 12. 28. [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. [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. ์ด์ 1 ๋ค์