티스토리 뷰
시뮬레이션
- 1번, 4번은 순서대로 보면 되지만 2번, 3번은 양 옆을 따로 봐야한다.
1번 톱니바퀴 이동 명령 1->2->3->4
4번 톱니바퀴 이동 명령 4->3->2->1
2번 톱니바퀴 이동 명령 2->1 // 2->3->4
3번 톱니바퀴 이동 명령 3->4 // 3->2->1
- 1번과 3번은 같은 방향으로 움직인다.
- 2번과 4번은 같은 방향으로 움직인다.
소스 코드
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 | #include <iostream> #include <cmath> #define FOR(i,a,b) for(int i = a; i < b; i++) using namespace std; int K; int arr[5][8]; void move1(int x) { //시계방향이동 int tmp = arr[x][7]; for (int i = 7; i > 0; i--) { arr[x][i] = arr[x][i - 1]; } arr[x][0] = tmp; } void move2(int x) { //반시계방향이동 int tmp = arr[x][0]; FOR(i,0,7) { arr[x][i] = arr[x][i + 1]; } arr[x][7] = tmp; } int main() { FOR(i, 1, 5) FOR(j, 0, 8) scanf("%1d", &arr[i][j]); cin >> K; int num, d; while (K--) { cin >> num >> d; //톱니바퀴 번호, 방향 switch (num) { case 1: if (arr[1][2] != arr[2][6]) { // 2번의 이동여부 if (arr[2][2] != arr[3][6]) { //3번의 이동여부 if (arr[3][2] != arr[4][6]) d == 1 ? move2(4) : move1(4); //4번의 이동여부 d == 1 ? move1(3) : move2(3); } d == 1 ? move2(2) : move1(2); } d == 1 ? move1(1) : move2(1); break; case 2: if (arr[1][2] != arr[2][6]) d == 1 ? move2(1) : move1(1); if (arr[2][2] != arr[3][6]) { if (arr[3][2] != arr[4][6]) d == 1 ? move1(4) : move2(4); d == 1 ? move2(3) : move1(3); } d == 1 ? move1(2) : move2(2); break; case 3: if (arr[3][2] != arr[4][6]) d == 1 ? move2(4) : move1(4); //4번의 이동여부 if (arr[2][2] != arr[3][6]) { //2번의 이동여부 if (arr[1][2] != arr[2][6]) d == 1 ? move1(1) : move2(1); d == 1 ? move2(2) : move1(2); } d == 1 ? move1(3) : move2(3); break; case 4: if (arr[3][2] != arr[4][6]) { // 3번의 이동여부 if (arr[2][2] != arr[3][6]) { //2번의 이동여부 if (arr[1][2] != arr[2][6]) d == 1 ? move2(1) : move1(1); //1번의 이동여부 d == 1 ? move1(2) : move2(2); } d == 1 ? move2(3) : move1(3); } d == 1 ? move1(4) : move2(4); break; } } int ans = 0; FOR(i, 1, 5) if (arr[i][0] == 1) ans += pow(2, i - 1); cout << ans; } | cs |
반응형
'백준 온라인 저지' 카테고리의 다른 글
190704 BOJ 1309 동물원 (0) | 2019.07.04 |
---|---|
190411 BOJ 15683번 감시 (0) | 2019.04.11 |
190407 BOJ 12100번 2048 (Easy) (0) | 2019.04.07 |
190326 BOJ 3190번 뱀 (0) | 2019.03.26 |
190326 BOJ 1354번 무한 수열 2 (0) | 2019.03.26 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 운영체제
- 패스트캠퍼스
- 자료구조
- c언어
- Fast Campus
- #패스트캠퍼스 #프로그래밍대학생서포터즈 #올인원패키지 #컴퓨터공학 #성공하는프로그래밍공부법
- 컴퓨터공학
- 개발자 취업
- 프로그래밍 온라인 강의
- 코딩 면접
- 올인원 패키지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함