https://www.acmicpc.net/problem/14626

입력되는 13자리 숫자 중 *로 표시된 손상된 숫자를 제외하고, 가중치를 곱해서 더한 값을 sum이라고 하자.
(sum + [*] x 가중치) % 10 == 0
위 식을 만족하도록 *를 구하면 된다.
*는 0~9 범위의 자연수이므로 브루트포스 방식을 사용해도 시간이 길게 소요되지 않을 것이라 판단하여
0부터 9까지 수를 증가시키면서 *에 대입하여 위 식을 만족하는지 확인하였다.
#include <iostream>
using namespace std;
int main()
{
int sum = 0, idx, mul, ans;
string s;
cin >> s;
for(int i=0; i<s.size(); i++) {
if(s[i] == '*') {
idx = i;
continue;
}
(i%2 == 0) ? mul = 1 : mul = 3;
sum += (s[i] - '0') * mul;
}
(idx%2 == 0) ? mul = 1 : mul = 3;
for(ans=0; ans<10; ans++) {
int res = sum + ans*mul;
if(res % 10 == 0) break;
}
cout << ans;
return 0;
}