2009~2014/C/C++
[C언어 기출문제&풀이] 개미 수열
malu
2010. 11. 2. 17:49
프로그램 명: antseries
제한시간: 1 초
개미 수열은 아래와 같이 수열이 만들어 진다.
1 1 1 2 1 1 2 1 1 1 1 1 2 2 1 ....문제는 임의의 수열이 주어질 때 다음 단계의 수열을 알아내는 것이다.
어떤 규칙으로 확장되는지를 알아내는게 문제의 핵심이다.
입력
40 개 이하의 1 이상 9 이하의 수가 주어진다.입력의 끝은 0 이다.
출력
다음 단계의 수열을 한 줄에 출력한다.입출력 예
입력 1 2 1 1 0 출력 1 1 1 2 2 1
출처: 베르나르 베르베르
풀이 : 규칙은 이렇다. a(n)을 일반항이라고 하고, a(n-1)번째 항의 1의 갯수가a개 2의 갯수가b개... 이면 a(n)항은 a1b2처럼 표시한다.
소스코드 :
#include <stdio.h> |
02 |
|
03 |
int main() |
04 |
{ |
05 |
int a[40],i,count=0,temp=0; |
06 |
for (i=0;;i++) |
07 |
{ |
08 |
scanf ( "%d" ,&a[i]); |
09 |
if (a[i]==0) break ; |
10 |
count++; |
11 |
} |
12 |
for (i=1;i<=count;i++) |
13 |
{ |
14 |
if (a[i]!=a[i-1]) |
15 |
{ |
16 |
printf ( "%d %d " ,i-temp,a[i-1]); |
17 |
temp=i; |
18 |
} |
19 |
} |