BOJ14891: 톱니바퀴 작성일 2020-01-29 https://www.acmicpc.net/problem/14889 1월동안 100문제 풀기 (12/100) 다시 찾아온 구현문제. 입력과 배열의 크기 주의! BFS로 푼 버전 12345678910111213141516171819202122232425262728293031323334#include <bits/stdc++.h> using namespace std; string gear[4]; int mask[5]; int K, n, dir; void rotate(int n, int dir) { mask[n] = 1; if(n > 0 && !mask[n-1] && gear[n-1][2] != gear[n][6]) rotate(n-1, -dir); if(n < 3 && !mask[n+1] && gear[n][2] != gear[n+1][6]) rotate(n+1, -dir); if(dir == 1) gear[n] = gear[n].substr(7,1) + gear[n].substr(0,7); else gear[n] = gear[n].substr(1,7) + gear[n].substr(0,1); } int main() { for(int i = 0; i < 4; i++) cin >> gear[i]; cin >> K; for(int i = 0; i < K; i++) { cin >> n >> dir; for(int j = 0; j < 5; j++) mask[j] = 0; rotate(n-1, dir); } int ans = 0; for(int i = 0; i < 4; i++) ans += (gear[i][0]== '0' ? 0 : 1) << i; cout << ans; }