๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿง  ์•Œ๊ณ ๋ฆฌ์ฆ˜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.