되는대로 살자

[C언어 기출문제&풀이] 숫자 추측 게임 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 숫자 추측 게임

malu 2010. 11. 2. 17:37
프로그램 명: number_guessing
제한시간: 1 초
래리는 숫자추측 게임을 좋아한다.

2 인용 게임이다. X 가 추측한 숫자를 Y 가 맞추는 게임이다.

처음 X 는 네 개의 각 다른 숫자의 수를 맘 속으로 생각한 후 Y 에게 추측해보라고 말한다. Y 가 추측할 때 마다. X 는 자기가 생각한 수와 얼마나 근접한 가를 *A*B 로 말한다.

* 는 숫자를 나타낸다. A 앞에있는 * 는 X 가 생각한 수와 Y 가 말한 수에서 자리와 숫자가 일치한 개수를 나타내고 , B 앞의 * 는 숫자는 맞았지만 위치가 틀린 경우의 수이다.

예를 들어, X 가 숫자 5204 를 선택한 상태에서 Y 가 4902 를 추측한다면 , X 는 1A2B 로 말해야 한다.

X 가 생각한 수와 Y 가 말한수가 주어질 때 *A*B 를 출력하는 프로그램을 작성하시오.

입력

각 자리수가 다른 4 자리수가 입력으로 주어진다.

출력

*A*B 형식으로 공백없이 출력한다.

입출력 예

입력

5204 4902

출력

1A2B

입력

0123 3210

출력

0A4B
출처:South Central China 2008 hosted by NUDT

풀이: 숫자야구게임이랑 똑같은 원리다. 이중루프를 돌며 같은 숫자가 나왔을때 자리도 같으면 A를 증가시키고, 자리가 다르면 B를 증가시킨다.

소스코드
01 #include<stdio.h> 
02 int main() 
03
04      int i,j,c=0,d=0; 
05      char a[6]={0},b[6]={0}; 
06      scanf("%s%s",a,b); 
07      for(i=0;i<4;i++) 
08      
09           for(j=0;j<4;j++) 
10           
11                if(a[i]==b[j]) 
12                
13                     if(i==j) 
14                          c++; 
15                     else 
16                          d++; 
17                
18           
19      
20      printf("%dA%dB",c,d); 
21      return 0; 
22 }