말랑한 하루

[Programmers] 순위 (Lv 3, JavaScript) 본문

문제풀이/Programmers

[Programmers] 순위 (Lv 3, JavaScript)

지수는말랑이 2022. 12. 19. 18:15
반응형

[ 학습 내용 ]
Floyd-Warshall 지문 내용 복기 필요

false로 초기화 된 2차원 배열을 만드는 방법

    let 2dArray = [...Array(n)].map(_ => Array(n).fill(false));



[ 소스 코드 ]

function solution(n, results) {
    let game = [...Array(n)].map(_ => Array(n).fill(false));
    results.forEach(([a, b]) => game[a-1][b-1] = true);
    
    const floyd = () => {
        for(let k=0; k<n; k++) 
            for(let i=0; i<n; i++) 
                for(let j=0; j<n; j++) 
                    if(game[i][k] && game[k][j])
                        game[i][j] = true;
    }
    floyd();
    
    let answer = 0;
    for(let i=0; i<n; i++) {
        let cnt = 0;
        for(let j=0; j<n; j++) {
            if (game[i][j] || game[j][i])
                cnt++;
        }
        if (cnt === n-1)
            answer++;
    }
    
    return answer;
}
반응형
Comments