<링크>

https://www.acmicpc.net/problem/2816


<소스코드>

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
#include<stdio.h>
#include<string.h>
int main()
{
    int N;
    scanf("%d"&N);
    int index[2];
    char buf[11];
    for (int i = 0; i < N; ++i)
    {
        scanf("%s", buf);
        if (strcmp(buf, "KBS1"== 0)
            index[0= i;
        if (strcmp(buf, "KBS2"== 0)
            index[1= i;
    }
    int add = index[0> index[1];
    for (int i = 0; i < index[0]; ++i)
        printf("1");
    for (int i = 0; i < index[0]; ++i)
        printf("4");
    for (int i = 0; i < index[1+ add; ++i)
        printf("1");
    for (int i = 0; i < index[1+ add - 1++i)
        printf("4");
}
cs


<풀이>

스페셜저지이고 어차피 명령길이가 500만 안넘으면 되기 때문에

1이랑 4로만 처리하려했다. 올릴때는 무조건 KBS1먼저 싹 올리고 그다음에 KBS2를 올렸다.

이런 방식에서 KBS2가 KBS1보다 먼저나오면 KBS1을 올리는과정에서 KBS2의 원래 위치가 하나 밀려내려가기 때문에 누가 먼저 나오는지 체크했다.


+ Recent posts