주어진 조건 n개의 수를 처리하면 8자리의 암호를 생성할 수 있음.
8개의 숫자를 입력 받음.
첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보냄
다음 첫 번째 숫자를 2 감소한 뒤 맨 뒤로 ...
이와 같은 작업을 한 사이클이라 한다.
- 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지.
제약 사항
- 주어지는 각 수는 정수 범위를 넘지 않음
- 마지막 암호 배열은 모두 한 자리 수로 구성 됨
입력
- 각 테케 첫 줄에 테케 번호 주어짐.
- 그 다음 줄에 8개의 데이터 주어짐.
출력
- 테케 번호 출력 후 답을 출력함
#include<stdio.h> //오케이 stdio.h
#define SIZE 8 // 사이즈 8
int a[SIZE]; // 오케이 a 배열 만듬
int main() {
for (int test = 1; test <= 10; test++) {
int t; // 테케 받음
scanf("%d", &t);
int n, i;
for (i = 0; i < SIZE; i++)
scanf("%d", &a[i]); // a 배열 입력 받음
for (n = 1, i = 0;; i++, n++) { // 아이와 엔을 ++ 시킴
if (i == SIZE) // 아이가 8 이면?
i = 0;
if (n == 6) // 엔이 6이면?
n = 1;
a[i] -= n; // 에이 아이는 마이너스 엔을 함.
if (a[i] <= 0) // 0보다 작거나 같으면 주단
break; // 프로그램 종료 조건
}
a[i] = 0; //에이 아이는 0으로 넣음
//a[i]를 맨 뒤로 이동
for (;;) {
int temp = a[0];
for (i = 0; i < SIZE - 1; i++)
{
a[i] = a[i + 1];
}
a[SIZE - 1] = temp;
if (temp == 0)
break;
}
printf("#%d ", test);
for (i = 0; i < SIZE; i++)
printf("%d ", a[i]);
printf("\n");
}
return 0;
}'Algorithms > simulation' 카테고리의 다른 글
| 1240 단순 2진 암호코드 (0) | 2018.10.26 |
|---|---|
| 1228 암호문1 (0) | 2018.10.26 |
| 1222 계산기1 (0) | 2018.10.26 |
| 1217 거듭 제곱 (0) | 2018.10.26 |
| 1213 String (0) | 2018.10.26 |
댓글