목 차
Ⅰ. 매직카드의 구현
Ⅰ-1. 문제 분석
Ⅰ-2. 소스 코드
Ⅰ-3. 입력 데이터
Ⅰ-4. 결 과
Ⅰ-5. 결 론
Ⅰ-1. 문제 분석
▶ 매직카드란
다음과 같이 0부터 7까지 쓰여진 3장의 카드 A, B, C가 있다.
1 3
5 7
2 3
6 7
4 5
6 7
A B C
이제 , 0부터 7사이에 있는 수자 중에 한 숫자를 마음속에 정한다. 카드를 A, B, C 순서대로 한 장씩 보면서 만약 마음속으로 생각한 숫자가 카드에 있으면 YES를, 카드가 없으면 NO를 답한다. 3장의 카드에 대하여 모두 답을 하면 내 마음 속에 있는 숫자가 나타난다. 이것이 마술카드이다. 그런데 내 마음속에 있는 숫자를 어떻게 알아낼까
이제 내 마음속에 있는 숫자를 어떻게 구하는지를 생각해보자. 먼저 세 장의 카드에 대하여 각각 YES와 NO를 연속하여 누르는 것은 2가지 경우의 수가 연속하여 3번 독립적으로 반복되는 것을 의미하므로, 이 때 나타날 수 있는 경우는 2 × 2 × 2 = 8 가지 이다.
따라서 3번의 YES와 NO의 답변으로 모두 8개의 숫자를 대응시켜 분류할 수 있다. 즉, YES를 숫자 1, NO를 숫자 0으로 표시한다면 다음과 같은 표를 얻을 수 있다.
마음속에 생각한 수
대답
CBA00001001201030114100510161107111
[3장의 카드를 구성하는 진리표]
.... |