deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

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

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‹จ์–ด ๋ณ€ํ™˜
Algorithm Problem/JavaScript

[javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‹จ์–ด ๋ณ€ํ™˜

2020. 10. 20. 08:40
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • Lv3 | BFS

  1. begin ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ BFS ํƒ์ƒ‰
  2. BFS๋Š” target๊ณผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
  3. target๊ณผ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์„œ ๋‹ต์„ ์ถœ๋ ฅ
  4. ์•„๋ž˜์˜ ์ฝ”๋“œ์—์„œ๋Š” visited์™€ words_obj๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ
    ์ž˜ ์งœ๋ณด๋ฉด words_obj ํ•˜๋‚˜๋กœ ์ถฉ๋ถ„ํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค!

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

function solution(begin, target, words) {
    var answer = 0;
    // ํƒ€๊ฒŸ์ด ์›Œ๋“œ์— ์—†๋Š” ๊ฒฝ์šฐ
    if (!words.includes(target)) {
        return answer
    }
    
    let n = words.length
    // visited ์™€ queue
    let visited = Array(n).fill(0)
    let q = [begin]
    
    // ๋‹จ์–ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ์ฒด์— ์ €์žฅ
    const words_obj = {}
    for (let i in words) {
        words_obj[words[i]] = i
    }

    while (q.length > 0) {
        let c = q.shift()
        
        // ํƒ€๊ฒŸ ์›Œ๋“œ์— ๋„๋‹ฌํ•˜๋ฉด ๋
        if (c == target) {
            return visited[words_obj[c]]
        }
        for (let i in words) {
            if (visited[i] == 0) {
                let word = words[i]
                let diff = 0
                for (let j in word) {
                    if (c[j] != word[j]) {
                        diff++
                    }
                    if (diff > 1) {
                        break
                    }
                }
                if (diff == 1) {
                    q.push(word)
                    if (c == begin) {
                        visited[i] = 1
                    } else {
                        visited[i] = visited[words_obj[c]] + 1
                    }

                }
            }

        }
    }

    console.log(visited)
    return answer;
}

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

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

๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/43163

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋‹จ์–ด ๋ณ€ํ™˜

๋‘ ๊ฐœ์˜ ๋‹จ์–ด begin, target๊ณผ ๋‹จ์–ด์˜ ์ง‘ํ•ฉ words๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์„ ์ด์šฉํ•˜์—ฌ begin์—์„œ target์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๋ณ€ํ™˜ ๊ณผ์ •์„ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ๋งŒ ๋ฐ”๊ฟ€ ์ˆ˜

programmers.co.kr

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm Problem > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„(2021 Dev-Matching: ์›น ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž(์ƒ๋ฐ˜๊ธฐ))  (0) 2021.08.08
[javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋„คํŠธ์›Œํฌ  (0) 2020.10.21
[javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ  (2) 2020.10.19
[JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฒ ์ŠคํŠธ์•จ๋ฒ”  (0) 2020.08.01
[JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ”„๋ฆฐํ„ฐ  (0) 2020.07.28
    'Algorithm Problem/JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„(2021 Dev-Matching: ์›น ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž(์ƒ๋ฐ˜๊ธฐ))
    • [javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋„คํŠธ์›Œํฌ
    • [javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ
    • [JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฒ ์ŠคํŠธ์•จ๋ฒ”
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

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