Notice
Recent Posts
Recent Comments
Link
Tags
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ์ด๋ถํ์
- golang
- ๋นํธ๋งต
- ์นด์นด์ค ์ฝํ
- Union-Find
- C++
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- DFS
- nestjs
- ํธ๋ฆฌ
- ๋ค์ต์คํธ๋ผ
- ์นด์นด์ค2021
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ๋นํธ๋ง์คํน
- js
- BFS
- ๋ฐฑ์ค
- ์์ฝ๋
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ์น๋ฆฐ์ด
- ์๊ณ ๋ฆฌ์ฆ
- Python
- LCs
- DP
- ์ฌ๊ท
- go
- ์ํฐ๋
Archives
- Today
- Total
Hello Ocean! ๐ผ
[๋ฐฑ์ค/C++] 9019. DSLR ๋ณธ๋ฌธ
๋ฐ์ํ
๋ฌธ์
https://www.acmicpc.net/problem/9019
ํ์ด
BFS๋ฅผ ์ด์ฉํ๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๊ฐ 0 ~ 9999 ๊น์ง ์๊ธฐ ๋๋ฌธ์, 10000ํฌ๊ธฐ์ visited ๋ฐฐ์ด์ ๋ง๋ค์ด ์ด์ฉํ๋ค.
์ฒ์์ L๊ณผ R์ ์ซ์๋ฅผ String์ผ๋ก ๋ฐ๊พธ์ด์ ๋ง๋๋ ๋ฐฉ์์ผ๋ก ํด์ ์๊ฐ์ด๊ณผ๊ฐ ๋์๋ค.
๊ต์ฅํ ์ฌ์ํ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, ํ ์คํธ์ผ์ด์ค๋ฅผ ๋ง์ด ์ง์ด๋ฃ์ ์ ์๋ ๋ฐฉ์์ด๋ผ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ main์ cin, cout ์ ์ถ๋ ฅ ์๊ฐ์ ์ค์ด๊ธฐ ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋๋ ์๊ฐ์ด ์์ฃผ ์กฐ๊ธ ๋ ์ค์๋ค.
์ฝ๋
#include <iostream>
#include <queue>
#include <string>
using namespace std;
#define MAX 10000
bool visited[MAX];
string BFS(int A, int B) {
queue<pair<int, string>> q;
q.push(make_pair(A, ""));
//string Bs = intToString(B);
while (!q.empty()) {
int num = q.front().first;
string commend = q.front().second;
q.pop();
// D
int D = (num * 2) % MAX;
if (!visited[D]) {
visited[D] = 1;
q.push(make_pair(D, commend + 'D'));
if (D == B) return commend + 'D';
}
// S
int S = num - 1;
if (S < 0) S = MAX - 1;
if (!visited[S]) {
visited[S] = 1;
q.push(make_pair(S, commend + 'S'));
if (S == B) return commend + 'S';
}
// L
int L = (num * 10) % 10000 + num / 1000;
if (!visited[L]) {
visited[L] = 1;
q.push(make_pair(L, commend + 'L'));
if (L == B) return commend + 'L';
}
// R
int R = (num / 10) + (num % 10) * 1000;
if (!visited[R]) {
visited[R] = 1;
q.push(make_pair(R, commend + 'R'));
if (R == B) return commend + 'R';
}
}
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int T;
cin >> T;
for (int t = 0;t < T;t++) {
fill(&visited[0], &visited[MAX], 0);
int A, B;
cin >> A >> B;
string result = BFS(A, B);
cout << result << endl;
}
return 0;
}
๊ฒฐ๊ณผ
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1194. ๋ฌ์ด ์ฐจ์ค๋ฅธ๋ค, ๊ฐ์ (0) | 2021.06.02 |
---|---|
[๋ฐฑ์ค/C++] 2250. ํธ๋ฆฌ์ ๋์ด์ ๋๋น (0) | 2021.06.02 |
[๋ฐฑ์ค/C++] 1525. ํผ์ฆ (0) | 2021.05.26 |
[๋ฐฑ์ค/C++] 2146. ๋ค๋ฆฌ ๋ง๋ค๊ธฐ (0) | 2021.05.19 |
[๋ฐฑ์ค/C++] 2589. ๋ณด๋ฌผ์ฌ (0) | 2021.05.19 |