Skip to content

Commit 94d443d

Browse files
committed
[Gold IV] Title: DSLR, Time: 3780 ms, Memory: 2288 KB -BaekjoonHub
1 parent f36af7c commit 94d443d

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#include <iostream>
2+
#include <queue>
3+
4+
using namespace std;
5+
6+
int D(int n) {
7+
return (n * 2) % 10000;
8+
}
9+
10+
int S(int n) {
11+
return n == 0 ? 9999 : n - 1;
12+
}
13+
14+
int L(int n) {
15+
return (n % 1000) * 10 + n / 1000;
16+
}
17+
18+
int R(int n) {
19+
return (n % 10) * 1000 + n / 10;
20+
}
21+
22+
int main() {
23+
std::ostream::sync_with_stdio(false);
24+
25+
int T;
26+
cin >> T;
27+
28+
while (T--) {
29+
int A, B;
30+
cin >> A >> B;
31+
32+
queue<pair<int, string>> q;
33+
vector<bool> visited(10001);
34+
q.emplace(A, "");
35+
visited[A] = true;
36+
37+
while (!q.empty()) {
38+
int cur = q.front().first;
39+
string curStr = q.front().second;
40+
q.pop();
41+
42+
if (cur == B) {
43+
cout << curStr << '\n';
44+
break;
45+
}
46+
47+
int next = D(cur);
48+
if (!visited[next]) {
49+
q.emplace(next, curStr + 'D');
50+
visited[next] = true;
51+
}
52+
53+
next = S(cur);
54+
if (!visited[next]) {
55+
q.emplace(next, curStr + 'S');
56+
visited[next] = true;
57+
}
58+
59+
next = L(cur);
60+
if (!visited[next]) {
61+
q.emplace(next, curStr + 'L');
62+
visited[next] = true;
63+
}
64+
65+
next = R(cur);
66+
if (!visited[next]) {
67+
q.emplace(next, curStr + 'R');
68+
visited[next] = true;
69+
}
70+
}
71+
}
72+
return 0;
73+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# [Gold IV] DSLR - 9019
2+
3+
[๋ฌธ์ œ ๋งํฌ](https://www.acmicpc.net/problem/9019)
4+
5+
### ์„ฑ๋Šฅ ์š”์•ฝ
6+
7+
๋ฉ”๋ชจ๋ฆฌ: 2288 KB, ์‹œ๊ฐ„: 3780 ms
8+
9+
### ๋ถ„๋ฅ˜
10+
11+
๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰, ๊ทธ๋ž˜ํ”„ ์ด๋ก , ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰
12+
13+
### ์ œ์ถœ ์ผ์ž
14+
15+
2024๋…„ 11์›” 14์ผ 11:07:14
16+
17+
### ๋ฌธ์ œ ์„ค๋ช…
18+
19+
<p>๋„ค ๊ฐœ์˜ ๋ช…๋ น์–ด D, S, L, R ์„ ์ด์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๊ณ„์‚ฐ๊ธฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๊ณ„์‚ฐ๊ธฐ์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ์ด ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” 0 ์ด์ƒ 10,000 ๋ฏธ๋งŒ์˜ ์‹ญ์ง„์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๋ช…๋ น์–ด๋Š” ์ด ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ n์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜ํ•œ๋‹ค. n์˜ ๋„ค ์ž๋ฆฟ์ˆ˜๋ฅผ d<sub>1</sub>, d<sub>2</sub>, d<sub>3</sub>, d<sub>4</sub>๋ผ๊ณ  ํ•˜์ž(์ฆ‰ n = ((d<sub>1</sub> ร— 10 + d<sub>2</sub>) ร— 10 + d<sub>3</sub>) ร— 10 + d<sub>4</sub>๋ผ๊ณ  ํ•˜์ž)</p>
20+
21+
<ol>
22+
<li>D: D ๋Š” n์„ ๋‘ ๋ฐฐ๋กœ ๋ฐ”๊พผ๋‹ค. ๊ฒฐ๊ณผ ๊ฐ’์ด 9999 ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋Š” 10000 ์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ทจํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๊ฐ’(2n mod 10000)์„ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ๋‹ค.</li>
23+
<li>S: S ๋Š” n์—์„œ 1 ์„ ๋บ€ ๊ฒฐ๊ณผ n-1์„ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ๋‹ค. n์ด 0 ์ด๋ผ๋ฉด 9999 ๊ฐ€ ๋Œ€์‹  ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ๋‹ค.</li>
24+
<li>L: L ์€ n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ์™ผํŽธ์œผ๋กœ ํšŒ์ „์‹œ์ผœ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ๋‹ค. ์ด ์—ฐ์‚ฐ์ด ๋๋‚˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๋„ค ์ž๋ฆฟ์ˆ˜๋Š” ์™ผํŽธ๋ถ€ํ„ฐ d<sub>2</sub>, d<sub>3</sub>, d<sub>4</sub>, d<sub>1</sub>์ด ๋œ๋‹ค.</li>
25+
<li>R: R ์€ n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜ค๋ฅธํŽธ์œผ๋กœ ํšŒ์ „์‹œ์ผœ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ๋‹ค. ์ด ์—ฐ์‚ฐ์ด ๋๋‚˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๋„ค ์ž๋ฆฟ์ˆ˜๋Š” ์™ผํŽธ๋ถ€ํ„ฐ d<sub>4</sub>, d<sub>1</sub>, d<sub>2</sub>, d<sub>3</sub>์ด ๋œ๋‹ค.</li>
26+
</ol>
27+
28+
<p>์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ, L ๊ณผ R ๋ช…๋ น์–ด๋Š” ์‹ญ์ง„ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n = 1234 ๋ผ๋ฉด ์—ฌ๊ธฐ์— L ์„ ์ ์šฉํ•˜๋ฉด 2341 ์ด ๋˜๊ณ  R ์„ ์ ์šฉํ•˜๋ฉด 4123 ์ด ๋œ๋‹ค.</p>
29+
30+
<p>์—ฌ๋Ÿฌ๋ถ„์ด ์ž‘์„ฑํ•  ํ”„๋กœ๊ทธ๋žจ์€ ์ฃผ์–ด์ง„ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์ •์ˆ˜ A์™€ B(A โ‰  B)์— ๋Œ€ํ•˜์—ฌ A๋ฅผ B๋กœ ๋ฐ”๊พธ๋Š” ์ตœ์†Œํ•œ์˜ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ A = 1234, B = 3412 ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐœ์˜ ๋ช…๋ น์–ด๋ฅผ ์ ์šฉํ•˜๋ฉด A๋ฅผ B๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.</p>
31+
32+
<p>1234 โ†’<sub>L</sub> 2341 โ†’<sub>L</sub> 3412<br>
33+
1234 โ†’<sub>R</sub> 4123 โ†’<sub>R</sub> 3412</p>
34+
35+
<p>๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์€ ์ด ๊ฒฝ์šฐ์— LL ์ด๋‚˜ RR ์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.</p>
36+
37+
<p>n์˜ ์ž๋ฆฟ์ˆ˜๋กœ 0 ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 1000 ์— L ์„ ์ ์šฉํ•˜๋ฉด 0001 ์ด ๋˜๋ฏ€๋กœ ๊ฒฐ๊ณผ๋Š” 1 ์ด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ R ์„ ์ ์šฉํ•˜๋ฉด 0100 ์ด ๋˜๋ฏ€๋กœ ๊ฒฐ๊ณผ๋Š” 100 ์ด ๋œ๋‹ค.</p>
38+
39+
### ์ž…๋ ฅ
40+
41+
<p>ํ”„๋กœ๊ทธ๋žจ ์ž…๋ ฅ์€ T ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜ T ๋Š” ์ž…๋ ฅ์˜ ์ฒซ ์ค„์— ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ๋Š” ๋‘ ๊ฐœ์˜ ์ •์ˆ˜ A์™€ B(A โ‰  B)๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง€๋Š”๋ฐ A๋Š” ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ดˆ๊ธฐ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ณ  B๋Š” ์ตœ์ข… ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. A ์™€ B๋Š” ๋ชจ๋‘ 0 ์ด์ƒ 10,000 ๋ฏธ๋งŒ์ด๋‹ค.</p>
42+
43+
### ์ถœ๋ ฅ
44+
45+
<p>A์—์„œ B๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๋ช…๋ น์–ด ๋‚˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด ๋‚˜์—ด์ด ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฉด, ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.</p>
46+

0 commit comments

Comments
ย (0)