본문 바로가기

지난 학기들의 기록59

[C실습] 함수 예제 - 시저암호화 및 복호화(Caesar cipher,카이사르 암호)+수정(파이썬코드 추가) 함수예제 - 시저 암호화 및 복호화 ( Caesar cipher, 카이사르 암호) 이번 포스트에서는 대표적인 암호학 예제인 시저암호를 C언어와 파이썬으로 구현해보겠습니다. 문제는 다음과 같습니다. 아이디어 생각하기 문자형 배열에서 자주 등장하는 문제입니다. 아스키코드표에서 대문자와 소문자 범위는 정해져있는데 M을 입력받아 M칸을 이동한 알파벳을 출력하는 것입니다 . 예시로 들면 apple 라는 문자열이 주어졌을때 3칸씩 이동시키게 되면 d s s o h 가 출력되게 되는것입니다. 여기서 주의해야할 점을 말하자면 M칸씩 이동시켰는데 z를 넘어버리면 다시 a로 돌아와야합니다. 위의 알고리즘을 소문자,대문자에 적용하여 암호화 함수 encrypt와 복호화 함수 decrypt를 구현합니다. 먼저 코드 작성전에 앞.. 2020. 6. 1.
[C실습] 함수예제 - 높은 자릿수, 낮은자릿수부터 변환하기 이번 포스트에서는 함수 실습 예제를 다룹니다. 문제는 양의 정수를 입력받아서 두 자리수씩 묶어서 아스키코드와 대조하여 문자로 반환하는것입니다. 먼저 문제에 대한 이해를 하고 그 내용을 바탕으로 코드를 작성하겠습니다. N을 입력받았을때 자릿수를 구해야하고, 자릿수 개수가 홀수인지 짝수인지에 따라 가장 높은 두 자리수출력함수 , 낮은 두 자리수 출력함수를 호출해야합니다. 그리고 그 함수들은 출력숫자를 제외한 나머지 숫자를 반환합니다. 예시를 들어보면 12345의 경우 진행과정은 자릿수판별 > 자릿수 5개 (홀수)> 높은 두자릿수 출력함수 실행, 남은 숫자 반환 (반복) > 종료 EX1) 12345 > convert_top 실행 > 12 출력 345 반환 > 34 출력 5 반환 > 5출력 0반환 >종료 EX2.. 2020. 5. 31.
[C실습] 배열 예제- 배열의 원소 중복 검사하기 이번 포스트에서 다룰 예제 유형은 배열의 중복된 숫자 검사입니다. 간단한 알고리즘 2가지를 통해 구현해보았습니다. 바로 코드를 참고해주세요. 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 #pragma warning(disable:4996) #include /* 문제 5-2 */ int main() { int A[100];//A 원소 값들을 입력받는 배열 선언 int B[100];//B 원소 값들을 입력받는 배열 선언.. 2020. 5. 31.
[C실습] 배열 예제- 홀수와 짝수로 구분해서 정렬하기 #pragma warning(disable:4996) #include /* 문제2 . 10개의 양의 정수를 입력받아서 입력받은 숫자가 홀수면 배열의 앞에서부터, 짝수면 뒤에서부터 채워서 10개의 양의 정수를 재배열하여 출력하시오. */ int main() { int num[10]; int num2[10] = { 0 }; // 정수를 재정렬하여 담을 배열선언 int p = 0, q = 9;// p는 start, q는 end 이게 핵심 아이디어 for (int i=0;i 2020. 5. 31.