관리 메뉴

사적공간

town에서 black 찾기 본문

KNOU_CS/C++

town에서 black 찾기

2sac 2024. 9. 27. 17:26

town에 black 이 있으면 crim town에 black이 없으면 per

 

#include <iostream>
#include <cstring>
using namespace std;


int main() {
    int black[2][4] = {
        5,7,9,55,
        30,10,6,8,
    };

    int town[2][4] = {
        1,2,3,4,
        5,7,10,15,
    };

    int dat1[100] = { 0 };
    int dat2[100] = { 0 };

    for (int y = 0; y < 2; y++) {
        for (int x = 0; x < 4; x++) {
            dat1[black[y][x]] = 1;
            dat2[town[y][x]] = 1;
        }
    }

    int per = 0;
    int crim = 0;
    for (int i = 0; i < 100; i++) {
        if ((dat2[i] * dat1[i]) == 1) {
            crim++;
        } 
        else if (dat2[i] == 1) {
            per++;
        }

    }


    cout << "per :"<< crim <<endl;
    cout << "crim :"<< per <<endl;




    return 0;
}

 

 

 

아래 방법이 더 좋은 방법 

 

안에 저장된 내용은 그대로 있고 인덱스만 바꿔서 검색할 배열 공간을 선택한다는 개념이 적용됨. 

#include <iostream>
#include <cstring>
using namespace std;


int main() {
    int black[2][4] = {
        5,7,9,55,
        30,10,6,8,
    };

    int town[2][4] = {
        1,2,3,4,
        5,7,10,15,
    };
    
    int per=0;
    int crim=0;
    int dat[100] = { 0 };
    
    
    for (int y = 0; y < 2; y++) {
        for (int x = 0; x < 4; x++) {
            dat[black[y][x]] = 1; 
        }
    }

    for (int y = 0; y < 2; y++) {
        for (int x = 0; x < 4; x++) {
            if (dat[town[y][x]] == 1) crim++;
            else per++;
        }
}


    cout << "per :" << crim << endl;
    cout << "crim :" << per << endl;

    return 0;
}