문제 설명 SEND+MORE=MONEY 라는 유명한 복면산이 있습니다. 이 복면산을 구하여 A + B = C 형태로 출력하는 프로그램을 작성 하세요.
출력 예제 9567 + 1085 = 10652 소스 코드 보자마자 방정식이 떠올라서 자리에 따른 10의 제곱수와 미지수의 조합으로 표현하니, 접근하기 쉬웠다. 여기서 브루트 포스를 돌리면 되는데, 복면산의 규칙상 앞 자리는 0이 되면 안된다는 암묵적인 기본 규칙이 있음.
때문에 S와 M이 0이 되는 경우를 if문으로 배제해주고 위 방정식이 성립되지 않는 값들도 배제해준다. 결과적으로 10652라는 값만 나오게 된다.
#include #include using namespace std; enum ABC { S, E, N, D, M, O, R, Y }; vector res(8); vector vis(10); void DFS(int depth) { if (depth == 8) { if ...
원문 링크 : 복면산 SEND+MORE=MONEY