암호학는 언제나 흥미로운 분야입니다.
작년에 상영했던 이미테이션 게임도 암호/복호를 소재로 다루고 있었지요.
이번 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등으로 상승하였습니다.
끝_
'IT' 카테고리의 다른 글
[Ubuntu/Linux] #!/bin/sh에 대한 간단한 이야기 (2) | 2015.07.04 |
---|---|
[Ubuntu/Linux] 우분투 15.04 삼바설정툴(system-config-samba) 크래쉬 (3) | 2015.07.03 |
[algospot/알고리즘] 알고스팟 '왕초보' 난이도 CONVERT 풀기(C99 Default argument promotion) (1) | 2015.06.30 |
[algospot/알고리즘] 알고스팟 알고리즘 풀어보기 (0) | 2015.06.29 |
[algospot/알고리즘] 알고스팟, '왕초보' 난이도 MISPELL 풀기 (0) | 2015.06.28 |
[algospot/알고리즘] 알고스팟 접속불가, "502 Bad Gateway"는 무엇? (1) | 2015.06.25 |
[algospot/알고리즘] 알고스팟, '왕초보' 난이도 LECTURE 풀기 (0) | 2015.06.24 |
[algospot/알고리즘] 알고스팟, '왕초보' 난이도 DRAWRECT 풀기 (0) | 2015.06.23 |
[algospot/알고리즘] 알고스팟, '왕초보' 난이도 ENDIANS 풀기 (0) | 2015.06.22 |
[SQLite] SQLite의 새로운 수익모델 (0) | 2015.06.21 |