HyeLog
๋ฐฑ์ค_15662_ํฑ๋๋ฐํด2 ๋ณธ๋ฌธ
๐จ์๋ชป๋ ํ์ด) ์ฒ์ ์ฝ๋๋ฅผ ์งค ๋, ํ์ ์ํฌ ํฑ๋๋ฐํด๋ฅผ ํ์ ์ ํด๊ฐ๋ฉด์ ์ฐพ๋ ์ค์๋ฅผ ํ๋ค. ์ ์ด์ ํฑ๋๋ฐํด๋ฅผ ํ์ ์ํค๊ธฐ ์ ์ ํ์ ์ํฌ ํฑ๋๋ฐํด๋ค์ ๋ฏธ๋ฆฌ ๋ค ์ฐพ์๋์์ผ ํ๋ค.
#include <iostream>
#define MAX 1000
using namespace std;
// K๋ฒ ํ์ ์ํจ ํ, ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ์ด 1์ธ ํฑ๋๋ฐํด์ ๊ฐ์
int arr[MAX][8], T, K;
void turnArr(int now, int dir);
void solve(int prev, int now, int dir) {
// ์ฌ๊ท ์ข
๋ฃ ์กฐ๊ฑด? ์ด์ ์ ๊ทน์ด๋ ๊ทน์ด ๊ฐ์ผ๋ฉด ํ์ ๋ฉ์ถ๊ธฐ, ๊ทน์ด ๋ค๋ฅด๋ฉด ๊ณ์ํด์ ํ์ ์งํ.
// ์ ํฑ๋๋ฐํด์ 3๋ฒ์งธ๋ ๋ฐ ํฑ๋๋ฐํด์ 7๋ฒ์งธ๋ฅผ ๋น๊ต ( ํ์ ์ํค๊ธฐ ์ ์ ๋น๊ต ๋จผ์ )
if (now < prev) { // ์ ๋ฐฉํฅ
if (arr[prev][2] == arr[now][6]) return;
else {
int new_dir;
if (dir == 1) new_dir = -1;
else new_dir = 1;
turnArr(now, new_dir);
solve(now, now - 1, new_dir);
}
}
else if (now > prev) { // ์๋ ๋ฐฉํฅ
if (arr[now][2] == arr[prev][6]) return;
else {
int new_dir;
if (dir == 1) new_dir = -1;
else new_dir = 1;
turnArr(now, new_dir);
solve(now, now + 1, new_dir);
}
}
}
void turnArr(int now, int dir) {
int tmp;
if (dir == 1) {
tmp = arr[now][7];
for (int i = 6; i >= 0; i--) {
arr[now][i + 1] = arr[now][i];
}
arr[now][0] = tmp;
}
else {
tmp = arr[now][0];
for (int i = 1; i <= 7; i++) {
arr[now][i - 1] = arr[now][i];
}
arr[now][7] = tmp;
}
}
int main() {
cin >> T;
string s;
for (int i = 0; i < T; i++) {
cin >> s;
for (int j = 0; j < 8; j++) {
arr[i][j] = s[j] - '0';
}
}
cin >> K;
int a, b;
for (int i = 0; i < K; i++) {
cin >> a >> b;
a -= 1;
solve(a, a - 1, b);
solve(a, a + 1, b);
}
int cnt = 0;
for (int i = 0; i < T; i++) {
if (arr[i][0] == 1) cnt++;
}
cout << cnt << '\n';
return 0;
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค_1182_๋ถ๋ถ์์ด์ ํฉ (0) | 2022.04.14 |
---|---|
๋ฐฑ์ค_6603_๋ก๋ (0) | 2022.04.12 |
๋ฐฑ์ค_16967_๋ฐฐ์ด ๋ณต์ํ๊ธฐ (0) | 2022.02.21 |
๋ฐฑ์ค_16931_๊ฒ๋์ด ๊ตฌํ๊ธฐ (0) | 2022.02.21 |
๋ฐฑ์ค_16935_๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 3 (0) | 2022.02.15 |