ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ˆœ์œ„

2024. 8. 15. 21:23ยท๐Ÿ”’Algorithm

๐Ÿ”ฅ๋ฌธ์ œ๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/49191

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

๐Ÿ”ฅํ›„๊ธฐ

ํ•œ์ฐธ ๊ณ ๋ฏผํ•˜๋‹ค ํ’€์ง€๋ฅผ ๋ชปํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•œ ๋’ค ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. 

๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฒ•์„ ์ฐธ๊ณ ํ•˜๋‹ค ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์ด๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ๋‚ด๊ฐ€ ํ‘ผ ๋ฌธ์ œ์˜ ๋ฐฉ์‹์€ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•œ ํ’€์ด๋ผ๋Š” ์ ์„ ์–ธ๊ธ‰ํ•œ๋‹ค. ์ž์„ธํ•œ ํ’€์ด๋ฒ•์€ ํ•˜๋‹จ ์ฃผ์„์„ ์ฐธ๊ณ ํ•˜์ž

function solution(n, results) {

    let answer = 0;
    // n์€ 1๋ถ€ํ„ฐ ์ด๋ฏ€๋กœ ์ผ๋ถ€๋Ÿฌ index 0์€ ์‹ ๊ฒฝ์•ˆ์“ฐ๊ธฐ ์œ„ํ•ด n+1 ๊ธธ์ด์˜ ๋ฐฐ์—ด ์ƒ์„ฑ
    let graph = Array.from({length:n+1},()=>Array(n+1).fill(false))
    
    // ์ŠนํŒจ ํŒ๋ณ„ ๊ฐ€๋Šฅ check
    for([win,lose] of results){
        graph[win][lose]=true
    }
    
    // [1,5], [5,6] ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ -> ํ•˜๋‹จ ๊ณผ์ •์—์„œ [1,6]์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Œ
    for(let i=1; i<=n; ++i){
        for(let j=1; j<=n; ++j){
            if(graph[i][j]||graph[j][i]){
                
            }else{
                for(let k=1; k<=n; ++k){
                    if(graph[i][k] && graph[k][j]){
                        graph[i][j]=true
                        break;
                    }else if(graph[j][k] && graph[k][i]){
                        graph[j][i]=true
                        break;
                    }
                }    
            }
        }
    }
    
    
    // ์ด n ๋ช…์˜ ์„ ์ˆ˜๊ฐ€ ์žˆ์„ ๋•Œ 1๋ฒˆ ์„ ์ˆ˜๋Š” n-1๋ช…์˜ ์„ ์ˆ˜์™€์˜ ์‹ธ์›€ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•˜๋ฉด ๊ทธ ์„ ์ˆ˜๋Š” ์ •ํ™•ํ•œ
    // ์ˆœ์œ„๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ
    for(let i=1; i<=n; ++i){
        let count = 0 ;
        for(let j=1; j<=n; ++j){
            if(graph[i][j]||graph[j][i]){
                ++count
            }
        }
        
        if(count ===n-1){
            ++answer
        }
    }

    
    
    
    return answer;
}

'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ  (0) 2024.08.24
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๋‹จ์–ด๋ณ€ํ™˜  (1) 2024.08.24
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๋ฌด์ธ๋„ ์—ฌํ–‰  (0) 2024.08.11
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ˆ˜์‹ ์ตœ๋Œ€ํ™”  (1) 2024.08.10
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > [3์ฐจ] n์ง„์ˆ˜ ๊ฒŒ์ž„  (0) 2024.08.05
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๋‹จ์–ด๋ณ€ํ™˜
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ๋ฌด์ธ๋„ ์—ฌํ–‰
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ˆ˜์‹ ์ตœ๋Œ€ํ™”
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    react
    js
    ์‹ค๋ฒ„3
    ์ฝ”ํ…Œ
    javascript
    Easy
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ์‹ค๋ฒ„2
    ๊ทธ๋ฆฌ๋””
    node.js
    ์ž์Šค
    nodejs
    BFS
    ๊ตฌํ˜„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์‹ค๋ฒ„4
    FE
    ์‹ค๋ฒ„1
    ์˜ค๋ธ”์™„
    ๊ณจ๋“œ5
    Algorithm
    ํ”„๋ก ํŠธ์—”๋“œ
    DFS
    dp
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    Lv2
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๋ฐฑ์ค€
    leetcode
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ์ˆœ์œ„
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”