C언어/문제풀다 하나씩

3칸짜라 톱니바퀴 네개 돌리기 세로로.. 간단

mcdn 2020. 5. 1. 13:55
반응형

#include <iostream>
using namespace std;
int gear1[4] = { 3,7,4 };
int gear2[4] = { 2,6,9 };
int gear3[4] = { 5,1,2 };
int gear4[4] = { 3,6,7 };
int geared[4][4] = {
	3,7,4,0,
	2,6,9,0,
	5,1,2,0,
	3,6,7,0,
};
void turned(int gear[4], int num) {
	// 3740 1
	
	if (num % 3 == 1) {
		for (int i = 2;i >= 0;i--) {
			gear[i + 1] = gear[i];
		}
		
		gear[0] = gear[3];
		return;
	}
	else if (num % 3 == 2) {
		for (int i = 2;i >= 0;i--) {
			gear[i + 1] = gear[i];
		}
		gear[0] = gear[3];
		for (int i = 2;i >= 0;i--) {
			gear[i + 1] = gear[i];
		}
		gear[0] = gear[3];
		return;
	}
	else {
		return;
	}
}


int main() {
	int a, b, c, d;
	cin >> a >> b >> c >> d;
	turned(geared[0], a);
	turned(geared[1], b);
	turned(geared[2], c);
	turned(geared[3], d);
	
	for (int i = 0; i < 3;i++) {
		for (int j = 0; j < 4;j++) {
			cout << geared[j][i];
		}cout << endl;
	}
}

gear[0] = gear[4]에서 계속 에러남

ㅋㅋㅋㅋㅋㅋㅋ

gear[4] 는 집합 크기지 index가 존재하지 않음!

따라서 쓰레기 값이 들어가서 틀림

 

입력 예제

1 2 1 2

출력 결과

4626 3957 7213

반응형