๐ป
[๋ฐฑ์ค][์ผ์ฑ SW์ญ๋ํ ์คํธ] 15685. ๋๋๊ณค ์ปค๋ธ ๋ณธ๋ฌธ
[๋ฐฑ์ค][์ผ์ฑ SW์ญ๋ํ ์คํธ] 15685. ๋๋๊ณค ์ปค๋ธ
๋ํจ๋ 2020. 4. 21. 21:45https://www.acmicpc.net/problem/15685
๋ฌธ์
๋๋๊ณค ์ปค๋ธ๋ ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ์์ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ด์ฐจ์ ์ขํ ํ๋ฉด ์์์ ์ ์๋๋ค. ์ขํ ํ๋ฉด์ x์ถ์ → ๋ฐฉํฅ, y์ถ์ ↓ ๋ฐฉํฅ์ด๋ค.
- ์์ ์
- ์์ ๋ฐฉํฅ
- ์ธ๋
0์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๊ธธ์ด๊ฐ 1์ธ ์ ๋ถ์ด๋ค. ์๋ ๊ทธ๋ฆผ์ (0, 0)์์ ์์ํ๊ณ , ์์ ๋ฐฉํฅ์ ์ค๋ฅธ์ชฝ์ธ 0์ธ๋ ๋๋๊ณค ์ปค๋ธ์ด๋ค.
1์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ 0์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ฅผ ๋ ์ ์ ๊ธฐ์ค์ผ๋ก ์๊ณ ๋ฐฉํฅ์ผ๋ก 90๋ ํ์ ์ํจ ๋ค์ 0์ธ๋ ๋๋๊ณค ์ปค๋ธ์ ๋ ์ ์ ๋ถ์ธ ๊ฒ์ด๋ค. ๋ ์ ์ด๋ ์์ ์ ์์ ์ ๋ถ์ ํ๊ณ ์ด๋ํ์ ๋, ๊ฐ์ฅ ๋จผ ๊ฑฐ๋ฆฌ์ ์๋ ์ ์ ์๋ฏธํ๋ค.
2์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ 1์ธ๋๋ฅผ ๋ง๋ ๋ฐฉ๋ฒ์ ์ด์ฉํด์ ๋ง๋ค ์ ์๋ค. (ํ๋์ ์ ๋ถ์ ์๋ก ์ถ๊ฐ๋ ์ ๋ถ์ ๋ํ๋ธ๋ค)
3์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ 2์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ฅผ ์ด์ฉํด ๋ง๋ค ์ ์๋ค. ์๋ ๊ทธ๋ฆผ์ 3์ธ๋ ๋๋๊ณค ์ปค๋ธ์ด๋ค.
์ฆ, K(K > 1)์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ K-1์ธ๋ ๋๋๊ณค ์ปค๋ธ๋ฅผ ๋ ์ ์ ๊ธฐ์ค์ผ๋ก 90๋ ์๊ณ ๋ฐฉํฅ ํ์ ์ํจ ๋ค์, ๊ทธ๊ฒ์ ๋ ์ ์ ๋ถ์ธ ๊ฒ์ด๋ค.
ํฌ๊ธฐ๊ฐ 100×100์ธ ๊ฒฉ์ ์์ ๋๋๊ณค ์ปค๋ธ๊ฐ N๊ฐ ์๋ค. ์ด๋, ํฌ๊ธฐ๊ฐ 1×1์ธ ์ ์ฌ๊ฐํ์ ๋ค ๊ผญ์ง์ ์ด ๋ชจ๋ ๋๋๊ณค ์ปค๋ธ์ ์ผ๋ถ์ธ ์ ์ฌ๊ฐํ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๊ฒฉ์์ ์ขํ๋ (x, y)๋ก ๋ํ๋ด๋ฉฐ, 0 ≤ x ≤ 100, 0 ≤ y ≤ 100๋ง ์ ํจํ ์ขํ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋๋๊ณค ์ปค๋ธ์ ๊ฐ์ N(1 ≤ N ≤ 20)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋๋๊ณค ์ปค๋ธ์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๋๋๊ณค ์ปค๋ธ์ ์ ๋ณด๋ ๋ค ์ ์ x, y, d, g๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. x์ y๋ ๋๋๊ณค ์ปค๋ธ์ ์์ ์ , d๋ ์์ ๋ฐฉํฅ, g๋ ์ธ๋์ด๋ค. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10)
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋๋๊ณค ์ปค๋ธ๋ ๊ฒฉ์ ๋ฐ์ผ๋ก ๋ฒ์ด๋์ง ์๋๋ค. ๋๋๊ณค ์ปค๋ธ๋ ์๋ก ๊ฒน์น ์ ์๋ค.
๋ฐฉํฅ์ 0, 1, 2, 3 ์ค ํ๋์ด๊ณ , ๋ค์์ ์๋ฏธํ๋ค.
- 0: x์ขํ๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ (→)
- 1: y์ขํ๊ฐ ๊ฐ์ํ๋ ๋ฐฉํฅ (↑)
- 2: x์ขํ๊ฐ ๊ฐ์ํ๋ ๋ฐฉํฅ (←)
- 3: y์ขํ๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ (↓)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ํฌ๊ธฐ๊ฐ 1×1์ธ ์ ์ฌ๊ฐํ์ ๋ค ๊ผญ์ง์ ์ด ๋ชจ๋ ๋๋๊ณค ์ปค๋ธ์ ์ผ๋ถ์ธ ๊ฒ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ1
3
3 3 0 1
4 2 1 3
4 2 2 1
์์ ์ถ๋ ฅ1
4
์์ ์ ๋ ฅ2
4
3 3 0 1
4 2 1 3
4 2 2 1
2 7 3 4
์์ ์ถ๋ ฅ2
8
์๊ฐ
๋ฌธ์ ๊ฐ ๊ธธ๊ณ ์ดํดํ๋ ๊ฒ ์ด๋ ค์ ๋ค. ์ด๋ฆฌ์ ๋ฆฌ ์ ์ฐ๋ค๊ฐ ์ํ๋ ค์ ๊ฒฐ๊ตญ ๋ค๋ฅธ ๋ถ์ ๋ธ๋ก๊ทธํ์ด๋ฅผ ๋ณด๊ณ ๋๊ฐ์ด ์์ฑํ๋ค. ์์ด๋ฒ๋ฆด๋์ฏค ๊ผญ ๋ค์ ํ๊ฒ!
0: x์ขํ๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ (→) ใ ก => ใ ฃ ใด์ ์ข์ฐ๋ฐ์
1: y์ขํ๊ฐ ๊ฐ์ํ๋ ๋ฐฉํฅ (↑) ใ ฃ => ใ ก ใฑ
2: x์ขํ๊ฐ ๊ฐ์ํ๋ ๋ฐฉํฅ (←) ใ ก => ใ ฃ ใฑ์ ์ข์ฐ๋ฐ์
3: y์ขํ๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ (↓) ใ ฃ => ใ ก ใด
๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
1. ๋๋๊ณค ์ปค๋ธ ๋ง๋ค๊ธฐ
2. ์ ์ฌ๊ฐํ ๊ฐ์ ์ธ๊ธฐ
์์ฑํ ์ฝ๋
https://velog.io/@skyepodium/%EB%B0%B1%EC%A4%80-15685-%EB%93%9C%EB%9E%98%EA%B3%A4-%EC%BB%A4%EB%B8%8C
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n, x, y, d, g, result;
int ex, ey; //๋์ ์ ์ขํ
bool map[101][101];
//์ค, ์, ์ผ, ์
int dx[] = {1, 0, -1, 0};
int dy[] = {0, -1, 0, 1};
vector<int> dragon; //์ด์ ์ธ๋์ ๋ฐฉํฅ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
//1.
void curve(vector<int> &dragon)
{
int size = (int)dragon.size();
for (int i = size - 1; i >= 0; i--)
{
int dir = (dragon[i] + 1) % 4;
ex = ex + dx[dir];
ey = ey + dy[dir];
map[ex][ey] = true;
dragon.push_back(dir);
}
}
int main(int argc, const char *argv[])
{
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++)
{
int x, y, d, g;
cin >> x >> y >> d >> g;
dragon.clear(); //๊ธฐ์กด ๋๋๊ณค ์ปค๋ธ์ ์คํ์ ๋น์์ค๋ค.
map[x][y] = true; //์์์ ํ์
//0์ธ๋ ์ขํ
ex = x + dx[d];
ey = y + dy[d];
map[ex][ey] = true;
dragon.push_back(d);
for (int i = 0; i < g; i++)
{
curve(dragon);
}
}
// 2.
for (int i = 0; i <= 101 - 2; i++)
{
for (int j = 0; j <= 101 - 2; j++)
{
//์ธ์ ํ 4์นธ์ ์ ์ฌ๊ฐํ์ด ๋ชจ๋ ๋๋๊ณค์ ์ผ๋ถ์ด๋ฉด
if (map[i][j] == true && map[i][j + 1] == true && map[i + 1][j] == true && map[i + 1][j + 1] == true)
{
result++;
}
}
}
cout << result << '\n';
return 0;
}
Colored by Color Scripter
|
'์๊ณ ๋ฆฌ์ฆ > ๋ฌธ์ ํ์ด Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] DFSBFS - 7576. ํ ๋งํ (0) | 2020.09.29 |
---|---|
[๋ฐฑ์ค][์ผ์ฑ SW์ญ๋ ํ ์คํธ] 15683. ๊ฐ์ (0) | 2020.04.25 |
[๋ฐฑ์ค] ๋ธ๋ฃจํธํฌ์ค - 14889. ์คํํธ์ ๋งํฌ (0) | 2020.04.19 |
[๋ฐฑ์ค] DFS์BFS - 14502. ์ฐ๊ตฌ์ (0) | 2020.04.08 |
[๋ฐฑ์ค] ๋ฌธ์์ด ์ฒ๋ฆฌ - 1764. ๋ฃ๋ณด์ก (0) | 2020.04.06 |