본문 바로가기
Algorithms/simulation

1228 암호문1

by OKOK 2018. 10. 26.

- 0~999999 사이의 수를 나열하 암호문

- 처리기는 다음과 같이 1개의 기능을 제공

- 삽입 x y s 앞에서부터 x 의 우치 바로 다음에 와이개의 숫자를 삽입. s 는 덧붙일 숫자들

- 명령어를 나열하여 만든 문자열이 주어짐

- 수정된 결과의 처음 10개 숫자를 출력하는 프로그램을 작성하시오.


입력

- 첫 줄 암호문 길이

- 두 줄 원본 암호분

- 명령어의 개수

- 명령어

  


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h> // 헤더파일
#include <stdlib.h> // 헤더파일
 
int main() {
    int len; 
    int cmd;
    int *arr;
    int *modify;
    char insert;
    int start, num;
    int res[10];
    for (int j = 0; j<10; j++// 테케 10개
    {
        scanf("%d\n"&len); // 길이 받음
 
        arr = (int *)malloc(sizeof(int)*len); // 동적 할당으로 받음
        for (int k = 0; k<len; k++// 
        {
            scanf("%d "&arr[k]); // 원본 암호문 입력 받음
        }
        scanf("%d\n"&cmd); // 명령어 갯수 입력 받음
 
        for (int k = 0; k<cmd; k++)
        {
            scanf("%c %d %d"&insert, &start, &num); // 명령어 입력 받음
            modify = (int *)malloc(sizeof(int)*num); // 모디파이 또한 동적으로 할당 받음.
 
 
            for (int i = 0; i<num; i++)
            {
                scanf("%d "&modify[i]);
            }
 
            int i;
 
            //for 조건문 확인 밀고 밀고 밀고. 10이라는 숫자 이내만 처리하면 되므로,
            // 길이안애도 들고, 10보다 안에 있으면 오케이. arr 의 값을 res 에 넣어둡니다.
            for (i = start; i + num<len&&+ num<10; i++)
            {
                res[i + num] = arr[i];
            }
 
            // res 에 수정된 값을 넣어 둡니다.
            for (i = 0; i<num&& i + start<10; i++)
            {
                res[i + start] = modify[i];
            }
 
            // res 에 arr 값을 대입 ?
            for (i = 0; i<start&&i<10; i++)
            {
                res[i] = arr[i];
            }
 
            // arr 에 res 의 결과를 대입 for 조건식 확인
            for (int i = 0; i<10; i++)
            {
                arr[i] = res[i];
            }
        }
 
        printf("#%d ", j + 1); // 테케 번호 출력
        for (int i = 0; i<10; i++// 결과 출력
        {
            printf("%d ", arr[i]);
        }
        printf("\n");
    }
    return 0;
}
 
cs



'Algorithms > simulation' 카테고리의 다른 글

1245 균형점  (0) 2018.10.26
1240 단순 2진 암호코드  (0) 2018.10.26
1225 암호생성기  (0) 2018.10.26
1222 계산기1  (0) 2018.10.26
1217 거듭 제곱  (0) 2018.10.26

댓글