728x90
C++을 공부하던중 Vector를 사용해서 2차원 배열의 바둑알 십자 뒤집기를 해보았다.
#include <iostream>
#include <vector>
using namespace std;
void baduk(vector<vector<int>> &v1,int num1, int num2){
for(int i=0; i<19; i++){
if(v1[num1-1][i]==0){
v1[num1-1][i]=1;
}else{
v1[num1-1][i]=0;
}
}
for(int i=0; i<19; i++){
if(v1[i][num2-1]==0){
v1[i][num2-1]=1;
}else{
v1[i][num2-1]=0;
}
}
}
int main(){
int num,n1,n2,num2;
vector<vector<int>> v1(20,vector<int>(20,0));
for(int i=0; i<19; i++){
for(int j=0; j<19; j++){
cin >> num;
v1[i][j] = num;
}
}
cin >> num2;
for(int i=0; i<num2; i++){
cin >> n1 >> n2;
baduk(v1, n1, n2);
}
for(int i=0; i<19; i++){
for(int j=0; j<19; j++){
cout << v1[i][j] << " ";
}
cout << "\n";
}
}
vector의 포인터를 baduk이라는 메소드에 넘겨 vector를 수정하게 되면 해당 v1이 수정 되는 모습을 볼 수 있다.
728x90