๋ฐ์ํ
Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 |
Tags
- ์ฝํ
- ์นด์นด์ค
- ์คํ
- ํํ
- kakao
- javascript
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ๊ทธ๋ํ
- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- sort
- ์๋ฐ์คํฌ๋ฆฝํธ
- Blind
- ์๊ณ ๋ฆฌ์ฆ
- DP
- BFS
- SW์ญ๋ํ ์คํธ
- ํ์ด์ฌ
- boj
- DFS
- ์๋ฃ๊ตฌ์กฐ
- SSAFY
- ์์ ํ์
- SWEA
- Backjoon
- ์ผ์ฑ
- ์ฝ๋ฉํ ์คํธ
- algorithm
- Python
- ์ธํผ
Archives
- Today
- Total
๋ง์ํ
[javascript] ํ๋ก๊ทธ๋๋จธ์ค - ๋จ์ด ๋ณํ ๋ณธ๋ฌธ
Algorithm Problem/JavaScript
[javascript] ํ๋ก๊ทธ๋๋จธ์ค - ๋จ์ด ๋ณํ
deo2kim 2020. 10. 20. 08:40๋ฐ์ํ

๐ค๋ฌธ์ ํด๊ฒฐ
-
Lv3 | BFS
- begin ์์ ์์ํ์ฌ BFS ํ์
- BFS๋ target๊ณผ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ ์์ผ๋ฏ๋ก
- target๊ณผ์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด์ ๋ต์ ์ถ๋ ฅ
- ์๋์ ์ฝ๋์์๋ 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
๋ฐ์ํ
