본문 바로가기
Computer Science

A기실 암호문3 / 배열? top - >stack?

by OKOK 2018. 12. 14.

1. 필요한 변수 사용해서

2. 그리고 메모리 사이즈 설정은

3. 테스트케이스 돌아가는 정도로만 설정

4. 대강?

5. 테케의 정확한 메모리 크기도 가늠할 줄 알면 좋음

6. insert, pop, push 등 


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
72
73
74
75
76
#include <stdio.h>
#define MAXSIZE 4000
 
int code[MAXSIZE * 2], top; // 1 ~ 4000
 
                            // insert x,y,s "x의 위치 바로 다음에 y개의 숫자를 삽입."
void _insert_relocation(int x, int y) {
    int i;
    for (i = top - 1; i > x; i--)
        code[i + y] = code[i];
}
void insert(int x, int y) {
    int s;
    top += y;
    while (y--) {
        scanf("%d"&s);
        code[x + 1= s;
        x++;
    }
}
 
// x위치 바로 다음부터 y개의 숫자를 삭제
void delet(int x, int y) {
    int i;
    for (i = 0; i < ((top - 1- x) - y; i++) {
        code[i + x + 1= code[i + x + 1 + y];
        code[i + x + 1 + y] = 0;
    }
    top -= y;
}
 
void add(int y) {
    insert(top - 1, y);
}
 
int main()
{
    freopen("input.txt""r", stdin);
    int N, tc = 10, count = 0, i, cmdline, x, y;
    char cmd;
    while (tc--) {
        count++;
        scanf("%d"&N);
        top = N + 1;
        for (i = 1; i <= N; i++) {
            scanf("%d"&code[i]);
        }
        scanf("%d"&cmdline);
        for (i = 0; i < cmdline; i++) {
            scanf(" %c"&cmd);
            switch (cmd) {
            case 'I':
                scanf("%d %d"&x, &y);
                _insert_relocation(x, y);
                insert(x, y);
                break;
            case 'D':
                scanf("%d %d"&x, &y);
                delet(x, y);
                break;
            case 'A':
                scanf("%d"&y);
                add(y);
                break;
            default:
                break;
            }
        }
        printf("#%d ", count);
        for (i = 1; i <= 10; i++) {
            printf("%d ", code[i]);
        }printf("\n");
    }
    return 0;
}
 
cs


댓글