Skip to content

Commit

Permalink
Merge pull request #4 from AlgoLeadMe/1-dhlee777
Browse files Browse the repository at this point in the history
1-dhlee777
  • Loading branch information
dhlee777 authored Mar 14, 2024
2 parents 982569f + c007b21 commit 1a40b1c
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions dhlee777/bfs/μˆ¨λ°”κΌ­μ§ˆ.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include<iostream>
#include<queue>
using namespace std;
int dt[100001]; // μ‹œκ°„(λͺ‡μ΄ˆ)λ₯Ό μ €μž₯ν•˜λŠ” λ°°μ—΄,μΈλ±μŠ€λŠ” μˆ˜λΉˆμ΄κ°€ μžˆλŠ” μœ„μΉ˜μ΄λ‹€.
int k[3] = { -1,1}; //-1,1의 μœ„μΉ˜μ΄λ™μ„ λ”ν•΄μ£ΌκΈ°μœ„ν•œ λ°°μ—΄
queue<int>q;

void bfs(int start, int end) {
q.push(start); // 큐에 제일 처음 수빈이의 μ‹œμž‘μœ„μΉ˜λ₯Ό λ„£λŠ”λ‹€.
while (!q.empty()) {
int c = q.front(); //νμ—μ„œ μœ„μΉ˜λ₯Ό κΊΌλ‚Έλ‹€.
q.pop();
if (c == end) { //νμ—μ„œ κΊΌλ‚Έ μœ„μΉ˜κ°€ λ™μƒμ˜ μœ„μΉ˜μΌκ²½μš°
cout << dt[end]; //동생을 찾은 μœ„μΉ˜μ—μ„œμ˜ μ΅œμ†Œμ‹œκ°„μ„ 좜λ ₯
return;
}
for (int i = 0; i < 2; i++) { //cκ°€ κ°ˆμˆ˜μžˆλŠ” μœ„μΉ˜λ₯Ό μ‚΄νŽ΄λ³Έλ‹€(-1,+1)
int d = c + k[i]; // -1,+1 의 μœ„μΉ˜μ΄λ™μ„ 해쀀값을 dμ—λ„£λŠ”λ‹€.
if (d >= 0 && !dt[d] && d <= 100000) { // λ°©λ¬Έν•˜μ§€ μ•Šμ€ μœ„μΉ˜μ΄λ©΄ 탐색을 μ§„ν–‰ν•œλ‹€.
dt[d] = dt[c] + 1; //쑰건을 λ§Œμ‘±ν•˜λ©΄ λ°©κΈˆνƒμƒ‰ν•œμœ„μΉ˜μ˜ μ‹œκ°„μ„ κ·Έμ „ μœ„μΉ˜μ˜μ‹œκ°„ +1을 ν•΄μ€€λ‹€.
q.push(d); //bfsλ₯Όμœ„ν•΄ 큐에 방금 νƒμƒ‰ν•œμœ„μΉ˜λ₯Ό λ„£λŠ”λ‹€.
}
}
if (c * 2 <= 100000 && !dt[c * 2]) { //*2λ₯Ό ν†΅ν•œ νƒμƒ‰μ˜ 경우
dt[c * 2] = dt[c] + 1; //-1,1μ˜κ²½μš°μ™€ 동일
q.push(c * 2);
}
}
}
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int start,end;
cin >> start >> end; //수빈이의 ν˜„μž¬μœ„μΉ˜μ™€,λ™μƒμ˜ ν˜„μž¬μœ„μΉ˜λ₯Ό μž…λ ₯λ°›λŠ”λ‹€.
bfs(start, end);
return 0;
}

0 comments on commit 1a40b1c

Please sign in to comment.