[백준 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]) { ... }
댓글남기기