~cpp #include <iostream> #include <cmath> #include <ctime> using namespace std; const int DIGIT = 3; void GenerateRandomNumber(int real[]); void Process(int real[]); bool IsExistSameNumber(int nth, int real[]); void Calculate(int expected[], int real[], int& strike, int& ball); int main() { int real[3] = {0,}; GenerateRandomNumber(real); Process(real); return 0; } void GenerateRandomNumber(int real[]) { srand(time(0)); real[0] = rand() % 9 + 1; for(int i = 1 ; i < DIGIT ; ) { real[i] = rand() % 9; if(!IsExistSameNumber(i, real)) ++i; } } void Process(int real[]) { int expected[3] = {0,}; for(int i = 0 ; i < 10 ; ++i) { cout << ">>"; cin >> expected[0] >> expected[1] >> expected[2]; int strike = 0; int ball = 0; Calculate(expected, real, strike, ball); if( !(strike == 0 && ball == 0) ) { cout << strike << "스트라이크 " << ball << "볼" << endl; if(strike == 3) { cout << "축하합니다. " << endl; break; } } else cout << "아웃" << endl; } } bool IsExistSameNumber(int nth, int real[]) { for(int j = 0 ; j < nth ; ++j) { if(nth != j && real[nth] == real[j]) return true; } return false; } void Calculate(int expected[], int real[], int& strike, int& ball) { for(int i = 0 ; i < DIGIT; ++i) { for(int j = 0 ; j < DIGIT ; ++j) { if(expected[i] == real[j]) { if(i == j) ++strike; else ++ball; break; } } } }