본문 바로가기

IT

[algospot/알고리즘] 알고스팟, '왕초보' 난이도 ENCRYPT 풀기

암호학는 언제나 흥미로운 분야입니다.

작년에 상영했던 이미테이션 게임도 암호/복호를 소재로 다루고 있었지요.


이번 algopost 주제가 암호화입니다.

로마시대에나 썼을 법한 아주 간단한 암호화 방법인데요,

어렵지 않게 코드를 구현할 수 있을겁니다.



- 제목 : ENCRYPT

- 난도 : ☆☆☆☆☆ (0점/5점)

- 문제 : 문자열의 짝수번째 문자를 먼저 적고, 홀수번째 문자를 뒤이어 순서대로 적으세요.

- 답안

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
    register int i = 0;
    int count = 0;

    scanf("%d", &count);

    for (; i < count; i++) {
        char string[101] = {0, };
        char tostring[101] = {0, };
        int length = 0;
        int j = 0;
        int k = 0;
        int mid = 0;

        scanf("%s", string);

        length = strlen(string);
        if (!length) continue;

        mid = (length + 1) / 2;

        for (; j < mid; j++) {
            tostring[j] = string[j * 2];
        }

        for (j = mid; j < length; j++, k++) {
            tostring[j] = string[k * 2 + 1];
        }

        printf("%s\n", tostring);
    }

    return 0;
}


- for 문을 두번 돌리는데,

   첫번째는 짝수번째를 차례대로 복사합니다.

   두번째는 첫번째에 입력한 부분에 뒤이어서 홀수번째를 차례대로 복사합니다.


그 외에는 특이할 만한 사항이 없습니다.

쉬어가기 코너 정도로 생각해주세요.


이것으로 algospot에서 총 여섯문제를 풀었습니다.

순위는 2252등에서 1978등으로 상승하였습니다.


끝_