[백준 14891] 톱니바퀴 (삼성 기출)
Algorithm 카테고리의 다른 글
문제
백준 삼성 SW 역량테스트 기출 문제
코드 GitHub
#include <iostream>
#include <cmath>
using namespace std;
int Turn(int num, int dir, int gear[][8], int pivot[4], bool left, bool right) {
    // Left
    if(num > 0 && left) {
        int lpivot = (pivot[num] + 6) % 8;
        int rpivot = (pivot[num - 1] + 2) % 8;
        if(gear[num][lpivot] != gear[num - 1][rpivot]) {
            Turn(num - 1, 0 - dir, gear, pivot, true, false);
        }
    }
    //Right
    if(num < 3 && right) {
        int rpivot = (pivot[num] + 2) % 8;
        int lpivot = (pivot[num + 1] + 6) % 8;
        if(gear[num][rpivot] != gear[num + 1][lpivot]) {
            Turn(num + 1, 0 - dir, gear, pivot, false, true);
        }
    }
    // Turn
    pivot[num] -= dir;
    pivot[num] = (pivot[num] + 8) % 8;
    return 1;
}
int main() {
    int gear[4][8];
    int K;
    for(int i = 0; i < 4; i++) {
        for(int j = 0; j < 8; j++) {
            char a;
            cin >> a;
            gear[i][j] = a - '0';
        }
    }
    cin >> K;
    int pivot[4] = {0, };
    for(int i = 0; i < K; i++) {
        int num, dir;
        cin >> num >> dir;
        num--;
        Turn(num, dir, gear, pivot, true, true);
    }
    int score = 0;
    for(int i = 0; i < 4; i++) {
        if(gear[i][pivot[i]] == 1) {
            score += pow(2, i);
        }
    }
    cout << score;
}
피드백
- 제곱
    
#include <cmath> pow(a,b); - 배열 파라미터
    
int MyFunc(int arr[][10]) { ... } 
      
    
댓글남기기