[ 문제 ]
[ 접근방법 ]
n <= 100 이고 숫자도 최대 987까지 이므로 브루트포스로도 시간은 충분하다.
[ 소스코드 ]
#include <iostream>
using namespace std;
int n, m[105], s[105], b[105], ans;
bool chkNum(int x)
{
int d[3];
for (int i = 0; i < 3; i++)
{
d[i] = x % 10;
x /= 10;
}
if (d[0] == d[1] || d[1] == d[2] || d[2] == d[0])
return false;
if (!d[0] || !d[1] || !d[2])
return false;
return true;
}
bool chkGame(int idx, int x)
{
int d[3];
int md[3];
for (int i = 0; i < 3; i++)
{
d[i] = x % 10;
x /= 10;
}
x = m[idx];
for (int i = 0; i < 3; i++)
{
md[i] = x % 10;
x /= 10;
}
int ms = 0, mb = 0;
for (int i = 0; i < 3; i++)
{
if (d[i] == md[i])
ms++;
if (d[i] == md[(i + 1) % 3] || d[i] == md[(i + 2) % 3])
mb++;
}
return ms == s[idx] && mb == b[idx];
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> m[i] >> s[i] >> b[i];
}
for (int i = 123; i <= 987; i++)
{
if (!chkNum(i))
continue;
bool chk = true;
for (int j = 0; j < n && chk; j++)
{
chk = chkGame(j, i);
}
if (chk)
ans++;
}
cout << ans;
return 0;
}
'PS' 카테고리의 다른 글
[ 백준 / C++ ] 7662 : 이중 우선순위 큐 (0) | 2024.08.05 |
---|---|
[ 백준 / C++ ] 1747 : 소수&팰린드롬 (0) | 2024.08.02 |
[ 백준 / C++ ] 1652 : 누울 자리를 찾아라 (0) | 2024.07.31 |
[ 백준 / C++ ] 10868 : 최솟값 (0) | 2024.07.29 |
[ 백준 / C++ ] 1275 : 커피숍2 (0) | 2024.07.26 |