ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

https://github.com/choi2601/LeetCode-ProblemSolving/tree/main/797-all-paths-from-source-to-target

 

GitHub - choi2601/LeetCode-ProblemSolving: ๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป LeetCode ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ฝ”๋“œ ์ €์žฅ์†Œ

๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป LeetCode ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ฝ”๋“œ ์ €์žฅ์†Œ. Contribute to choi2601/LeetCode-ProblemSolving development by creating an account on GitHub.

github.com

๋ฆฟ์ฝ”๋“œ์—์„œ ์ธ์ ‘ ํ–‰๋ ฌ ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ์–ด์ด ์—†๋Š” ์‹ค์ˆ˜๋กœ ์ธํ•ด ์˜ค๋žœ ์‹œ๊ฐ„ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค.

๋‹ค์‹œ๋Š” ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ถ€๋ถ„์„ ์งง๊ฒŒ ํฌ์ŠคํŒ…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

๋ฐฐ์—ด ๊ฐ์ฒด

const answer = [];
    const n = graph.length;
    const nodes = Array.from(Array(n), () => Array());
    const ch = Array.from({length: n}, () => 0);
    
    for(let i = 0; i < graph.length; i++) {
        const route = graph[i];
        for(let j = 0; j < route.length; j++) {
            const path = route[j];
            nodes[i].push(path);
        }
    }
    
    const tmp = [0];
    
    function DFS(v) {
        if(v === n - 1) {
            answer.push(tmp);
            return;
        }
        else {
            for(let i = 0; i < nodes[v].length; i++) {
                if(ch[nodes[v][i]] === 0) {
                    ch[nodes[v][i]] = 1;
                    tmp.push(nodes[v][i]);
                    DFS(nodes[v][i]);
                    ch[nodes[v][i]] = 0;
                    tmp.pop();
                }
            }
        }
    }
    
    ch[0] = 1;
    DFS(0);
    
    return answer;

ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋กœ์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์† ์ •๋‹ต์ด ํ‹€๋ฆฌ๊ฒŒ ๋‚˜์™”๋‹ค.

[[0],[0]]

์ง€๋‚˜์˜จ ๊ฒฝ๋กœ๋ฅผ ์ž„์‹œ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์ธ tmp๋ฅผ ์ฝ˜์†”์ฐฝ์— ์ฐ์–ด๋ดค์„ ๋•Œ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ ํ–‰์ ์ด ๋‚˜์˜ค๋Š”๋ฐ, ๊ฒฝ๋กœ๊ฐ€ ๋‹ด๊ธด ์ •๋‹ต ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์ดˆ๊ธฐ ๊ฒฝ๋กœ์ธ 0๋งŒ์„ ๋‹ด์€ ๋ฐฐ์—ด์ด ๋‚˜์™”๋‹ค.

 

์˜ค๋žœ ์‹œ๊ฐ„ ๊ณ ๋ฏผ์„ ํ•ด๋ณธ ๊ฒฐ๊ณผ, ๋ฐฐ์—ด์ด ๊ฐ์ฒด ๋ผ๋Š” ์‚ฌ์‹ค์„ ๊ธฐ์–ตํ•ด ๋ƒˆ๋‹ค.

 

๋ฐฐ์—ด์€ ๊ฐ์ฒด๋กœ์„œ, ์ฐธ์กฐ๊ฐ’์— ์˜ํ•ด ๊ฐ’(value)๊ฐ€ ๊ณต์œ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์‹œ ๊ฒฝ๋กœ๋ฅผ ๋˜๋Œ์•„์™”์„ ๋•Œ ์ด์ „ ํ–‰์ ์„ ์—†์• ๊ธฐ ์œ„ํ•œ tmp.pop() ์—ฐ์‚ฐ์ด ์ตœ์ข… ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ ๊ฒƒ ์ด์—ˆ๋‹ค.

 

์ด์— ์›๋ณธ ๋ฐฐ์—ด์„ ์ •๋‹ต ๋ณ€์ˆ˜์— ๋ฐ”๋กœ push()ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, Array.prototype.slice()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๋ณธ ๋ฐฐ์—ด์„ ๊นŠ์€ ๋ณต์‚ฌํ•œ ์ƒˆ๋กœ์šด ์ฐธ์กฐ๊ฐ’์„ ์ง€๋‹Œ ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ์ •๋‹ต ๋ณ€์ˆ˜์— push() ํ•ด์คŒ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ