https://school.programmers.co.kr/learn/courses/30/lessons/132266#
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 3.
์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๋ณด๊ณ BFS ๋ฌธ์ ๊ฒ ๊ฑฐ๋ ์ถ์ธกํ์๋ค.
๋ณดํต ์ขํ(?)๊ฐ ์ฃผ์ด์ง๋ ๋ฌธ์ ๋ ๋๋น์ฐ์ ํ์์ผ๋ก ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ๋๋ฌธ์,,ใ ใ
1. ์ฒซ ์๋ - ํ ์คํธ์ผ์ด์ค 11๋ฒ~15๋ฒ ์๊ฐ์ด๊ณผ
์ ์ด๊ณผ๊ฐ ๋ฌ๋ ํ๋๋ฐ ๐ข
JS๋ก ์๊ณ ๋ฆฌ์ฆ ํธ๋๊ฒ ์ต์ํ์ง ์์์ bfs๋ฅผ ๋ฐ๋ณต๋ฌธ์ ๋ฃ์ด๋ฒ๋ฆฐ ํ์ด์๋ค.
๋ฐ๊พธ๋ ๊น์ ๋ค๋ฅธ ์ฝ๋๋ค๋ ์กฐ๊ธ์ฉ ๋ ์งง๊ณ ํจ์จ์ ์ผ๋ก ๋ณ๊ฒฝํด๋ณด์๋ค.
(Map.get ์ผ๋ก ๋ฐ์ดํฐ ์ ๋ฌด ํ์ธ -> Map.has๋ก ํ์ธํ๋ ๋ฑ)
2. ๋๋ฒ์งธ ์๋ - ์ฑ๊ณต
์ค์ํ ์์ด๋์ด ์ค ํ๋๋, ์ถ๋ฐ์ง๋ถํฐ ํ์ํ๋๊ฒ ์๋๋ผ ๋์ฐฉ์ง๋ถํฐ ํ์ํ๋๊ฒ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ด๋ค.
๋์ฐฉ์ง๋ 1๊ฐ๋ก ๊ณ ์ ์ด๊ธฐ ๋๋ฌธ์, ๋์ฐฉ์ง๋ถํฐ ๊ฑฐ๊พธ๋ก ๋๊น์ง ํ์ํ๋ฉด์ ๊ฐ ๋ ธ๋๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ ๋ค์
๋ง์ง๋ง์ ํ์ํ ๋ ธ๋์ ๊ฑฐ๋ฆฌ๊ฐ๋ง ์ถ์ถํ๋ฉด ๋๋ค.
๋์ ํ์ด
let answer = [];
let roadmap = new Map();
const bfs=(destination, time, sources, n)=>{
let visited = new Array(n+1).fill(-1); // ๊ธฐ๋ณธ๊ฐ์ -1๋ก
let q = [];
q.push([destination, time]); // ํ์ฌ ๋
ธ๋์ ํ์๋ฅผ ํจ๊ป ์ ์ฅ
visited[destination] = 0;
while(q.length>0){
let [now, count] = q.shift();
let nowEdges = roadmap.get(now);
if(!nowEdges) continue;
nowEdges.forEach(e=>{
if(visited[e]<0){
q.push([e, count+1]);
visited[e] = count+1;
}
})
}
answer = sources.map(s => visited[s]);
return;
}
function solution(n, roads, sources, destination) {
roads.forEach(([a, b])=>{ // ์ฃ์ง ์๋ฐฉํฅ ์ ์ฅ
if(roadmap.has(a)) roadmap.set(a, [...roadmap.get(a), b]);
else roadmap.set(a, [b]);
if(roadmap.has(b)) roadmap.set(b, [...roadmap.get(b), a]);
else roadmap.set(b, [a]);
})
bfs(destination, 0, sources, n);
return answer;
}
์ง๊ธ ๊ฐ๊ธฐ์ฝ์ ๋จน๊ณ ์๋๋ฐ.. ํ์คํ ๋จธ๋ฆฌ๊ฐ ์ ์๋์๊ฐ๋ค.
์ผ๋ฅธ ์ปจ๋์ ํ๋ณตํด์ผ๊ฒ ๋ค ใ ใ
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript/PGS] Lv.3 : ์ฌํ๊ฒฝ๋ก (0) | 2025.03.24 |
---|---|
[Javascript/PGS] Lv.3 : ๋ณด์ ์ผํ (0) | 2025.03.20 |
[Javascript/PGS] Lv.3 : ๋ถ๋ ์ฌ์ฉ์(2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ) (0) | 2025.03.20 |
[Javascript/PGS] Lv.2 : ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ(2022 KAKAO BLIND RECRUITMENT) (0) | 2025.03.19 |
[MySQL/PGS] Lv.1 : ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ํ๊ท ๊ธธ์ด ๊ตฌํ๊ธฐ (0) | 2025.03.16 |