2. SYNAP + SOFT = WANTS + YOU
문제
문제를 풀면 사이냅소프트에서 기념품을 드립니다.
원하신다면 입사특전도 있습니다.
*이벤트기간 : 2007년 9월 14일까지*
'SEND + MORE = MONEY' 라고 들어 보셨나요?? 모르셔도 상관없습니다. 고고싱~!!
이 문제는 20세기 최고의 퍼즐리스트중 한명인 헨리 듀드니가 만든 대표적인 암호산술 문제입니다.
각 알파벳은 하나의 숫자를 나타내고, 숫자의 첫번째자리에 '0' 을 쓸 수는 없습니다.
한마디로 이 문제에서 'S'와 'M'은 '0'이 아니라는 거죠. 답이 궁금하세요?
답은 한가지 경우가 있습니다. 먼저 연습 삼아 연필로 풀어보세요. ^0^/
- 'SEND +MORE = MONEY' [답보기]
9567 +1085 = 10652[E=5, D=7, M=1, O=0, N=6, S=9, R=8, Y=2]재밌죠? 하나 더 해볼까요? 이번엔 덧셈은 말고 곱셈으로 해보죠.
사이냅소프트 사장님 이름으로 해보죠. ^^*
'Allen Kyonghun Jeon' 으로 암호산술문제를 만들었습니다.
- 'ALLEN = K * JEON' 이 문제의 답은 3가지가 있습니다. [
답보기]
ALLEN = K * JEON
18825 = 3 * 6275[A=1, E=2, K=3, J=6, L=8, O=7, N=5]
18865 = 7 * 2695[A=1, E=6, K=7, J=2, L=8, O=9, N=5]
65520 = 9 * 7280[A=6, E=2, K=9, J=7, L=5, O=8, N=0]어때요? 해볼만하시죠? 어려워 보여도 조금만 신경쓰면 쉽게 풀 수 있을 겁니다. ^^*
자~ 여기까진 문제의 이해를 돕기 위한 도움말이었습니다~!!
드디어 진짜 문제가 나갑니다~ 집중하세요~! ^0^/
'SYNAP + SOFT = WANTS + YOU' 해석해볼까요?? '사이냅소프트는 당신을 원하고 있습니다' 라는군요~ *^0^*
기념품을 받으실 열쇠는 '가능한 모든 답의 좌변 숫자를 더한 값'입니다.
출처 : http://205486422643.synap.co.kr/
답안? (풀은거)
다운로드 : synap.cpp
- #include <iostream>
int main()
{
unsigned int sum = 0;
// 10중-_-for문을 돌린다.. s,w,y는 0일때를 제외한다.
for (int a = 0; a < 10; ++a)
for (int f = 0; f < 10; ++f)
for (int n = 0; n < 10; ++n)
for (int o = 0; o < 10; ++o)
for (int p = 0; p < 10; ++p)
for (int s = 1; s < 10; ++s)
for (int t = 0; t < 10; ++t)
for (int u = 0; u < 10; ++u)
for (int w = 1; w < 10; ++w)
for (int y = 1; y < 10; ++y)
{
// 1로 각 비트를 채운다. 10개의 숫자를 채운다.
int check = 1<<a | 1<<f | 1<<n | 1<<o | 1<<p | 1<<s | 1<<t | 1<<u | 1<<w | 1<<y;
// 0x3ff == 1111111111b / 0..9 가 모두 하나씩 있는지 체크한다.
if (0x3ff == check)
{
int left = s*10000 + y*1000 + n*100 + a*10 + p + s*1000 + o*100 + f*10 + t;
int right = w*10000 + a*1000 + n*100 + t*10 + s + y*100 + o*10 + u;
if (left == right)
{
sum += left;
std::cout << "found: " << left << "\tsum: " << sum << "\n";
}
}
}
std::cout << "Congratulation!!\nSum = " << sum << std::endl;
return 0;
}
후기?!
9*8*7*(7!) 의 경우의 수를 루프 돌아야 하는데, 10중 for문 말고 좀 우아한 방법으로 해보고 싶었으나...
KLDP에서 누가 배열을 교환하는 식으로 했는데 매우 느리다는 말을 듣고.. -_-;;
걍 무식하게 10중 for문으로 했다.
레프트 쉬프트한거랑, 0x3ff == 1111111111b 부분이 하이라이트라면 하이라이트.. -_-)v~
생각만큼 느리진 않다?! 1분 안에 결과 나오는듯.
History
Last edited on 03/02/2008 16:18 by jong10
Comments (0)