๋ค์์ฃผ์ ๋ฐ๋๋ผJS๋ฅผ ํ์ตํ๋๋ฐ ๋๋ ๋ฐ๋๋ผJS๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์ด ๋ณธ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ๊ฒ ๊ฐ์์ ๋ฏธ๋ฆฌ ๊ฐ์๋ฅผ ๋ค์๋ค.
๊ทธ๋์ ๋ค์์ฃผ์ ํ์ตํBFS/DFS
์ ๋ํด์ ๋ฏธ๋ฆฌ ๋ค๋ค๋ณด๋ ค๊ณ ํ๋ค.
๋๋น ์ฐ์ ํ์(BFS)
๊น์ด ์ฐ์ ํ์(DFS)
์ถ์ฒ : ํ๋ก๊ทธ๋๋จธ์ค
์ฌํ ๊ฒฝ๋ก
๋ด ๋ต์
function solution(tickets) {
const airportMap = new Map();
for (const [start, dest] of tickets) {
if (!airportMap.has(start)) {
airportMap.set(start, [dest]);
} else {
airportMap.get(start).push(dest);
}
}
for (const [start, dest] of airportMap.entries()) {
dest.sort().reverse();
}
const travelRoutes = [];
const stack = ["ICN"];
while (stack.length) {
const city = stack[stack.length - 1];
if (!airportMap.has(city) || airportMap.get(city).length === 0) {
travelRoutes.push(stack.pop());
} else {
stack.push(airportMap.get(city).pop());
}
}
return travelRoutes.reverse();
}
key
์๋ ์ถ๋ฐํ๋ ๊ณตํญ์, value
๋ ๋์ฐฉํ๋ ๊ณตํญ๋ค์ ์ด๊ธฐํ์์ผ์ค๋ค.stack
์ผ๋ก DFS
๋ฅผ ๊ตฌํํ์๋๋ฐ ์ฐ์ "ICN"๋ถํฐ ์ถ๊ฐํด ๋๋๋ค.์ค๋์ ํ๋ฃจ์ข
์ผ ๋๋ถ๋ถ ๊ณผ์ ์ ๋งค์ง
ํ์๋ค. ํธ๋ฆฌ์ ์ํ๋ฅผ ์ง์ ๊ตฌํ, ๊ทธ๋ฆฌ๊ณ ํธ๋ผ์ด๋ฅผ ์ด์ฉํ์ฌ ์๋์์ฑ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด์๋ค. ์์ง PR์ ์ฌ๋ฆฌ์ง๋ ์์์ง๋ง ์ค์ค๋ก ๊ตฌํํ๋ค๋ ๊ฒ์ ์นญ์ฐฌํด์ฃผ๊ณ ์ถ๋ค. ๋ฌผ๋ก ๊ตฌํ ๋ชปํ ๋ถ๋ถ(์คํ์ผ๋ก ๊ตฌํํ ํ์ ์ํ)๋ ์๋ค..๐ ์ด ๋ถ๋ถ์ ๋์ค์ ๋ฐ๋ก ์ ๋ฆฌํด๋ฌ์ผ์ง
๊ทธ๋ฆฌ๊ณ ๋ค์์ฃผ๋ถํฐ ๋ฐ๋๋ผJS
๋ฅผ ์์ํ๋ค. ํ๋ฒ๋ ์ด๊ฒ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์ด ๋ณธ์ ์ด ์์ด์ ๊ฑฑ์ ๋๋ค. ๋ฏธ๋ฆฌ ํ ๋ฒ ๋ณด๊ณ ์์ง๋ง ๋ฐ๋ผ๊ฐ๊ธฐ ์กฐ๊ธ ๋ฒ
์ฐจ์ง ์์๊น ์ถ๋ค. ๋ญ ์ด์ฉ๊ฒ ์ด~ ์๊ฐ์ ๋ ํฌ์ํด์ผ์ง! ๊ทธ๋ฌ๋ ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ๊ฐ์๋ฅผ ๋ค์ด๋์
์๋กญ๊ฒ ๋๋ ๊ฒ๋ ์๋๋ฐ ์ฒด๋ ฅ๊ด๋ฆฌ๋ฅผ ์ ํด์ผ ๊ฒ ๋ค๋ ๊ฒ์ด๋ค.๐ช๐ป๐ช๐ป ๊ณ์ ์ปดํจํฐ ์์ ์์์๊ณ ์ด๋๋ ๊ฑฐ์ ์ํ๊ธฐ ๋๋ฌธ์ ๋ชธ์ ์ปจ๋์
์ด ์์ข์์ง๋๊ฒ ์กฐ๊ธ ๋๊ปด์ง๋ค.๐ฉ
์ด๋์ ์ด๋์ด ์ค์ํ๊ฑด๊ฐ..๐ญ PT๋ฅผ ๋์ด์ผํ ๊น..? ๊ณ ๋ฏผํด๋ณด์!
๋ํ ํผ๊ณคํด๋ ์๋ฒฝ 2์-3์ ์์๋ ์๋๋ก ๋
ธ๋ ฅํด์ผ๊ฒ ๋ค!