개인적인 공부 공간/Algorithm

Code up 1097 바둑알 십자 뒤집기(Vector)

RBWSN 2022. 4. 14. 10:58
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