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

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[Javascript/PGS] Lv.3 : ์—ฌํ–‰๊ฒฝ๋กœ

728x90
๋ฐ˜์‘ํ˜•

 

https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=javascript

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ3

DFS ์œ ํ˜• ๋ฌธ์ œ์ด๊ณ , ์˜ˆ์ „์— CPP๋กœ ํ’€์—ˆ๋Š”๋ฐ js๋กœ ๋‹ค์‹œ ํ’€์–ด๋ณด์•˜๋‹ค.

 

ํ•œ ๊ฒฝ๋กœ๋กœ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ๊นŠ์ด์šฐ์„  ํƒ์ƒ‰์„ ์ง„ํ–‰,

๋งŒ์•ฝ ๋๊นŒ์ง€ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ๋ฐฑํŠธ๋ž˜ํ‚น์ด ํ•„์š”ํ•˜๋‹ค!

(pop & visited false ์ฒ˜๋ฆฌ)

 

 

๋‚˜์˜ ํ’€์ด

let answer = [];
let isAnswer = false;
let visited = new Array(10001).fill(false);
let Tickets;

const dfs=(now, count)=>{
    answer.push(now);
    if(count===Tickets.length) isAnswer=true;
    for(let i=0; i<Tickets.length; ++i){
        if(visited[i]) continue;
        if(now == Tickets[i][0]){
            visited[i] = true;
            dfs(Tickets[i][1], count+1);
            if(!isAnswer){
                answer.pop();
                visited[i] = false;
            }
        }
    }
}

function solution(tickets) {
    Tickets = tickets.sort();
    dfs("ICN", 0);
    return answer;
}

 

728x90
๋ฐ˜์‘ํ˜•