본문 바로가기

대학교 2-1/문해기

(13)
포인터 문제 (가)는 배열 및 포인터 배열, 배열포인터 변수들을 사용한  C언어로 작성된 프로그램이다. (나)는 (가)의 프로그램의 실행 결과이다. (나)의 실행 결과에서 빈 칸 ㄱ, ㄴ의 내용을 순서대로 쓰시오 (가) #include void main() {       int a[5][3] = { {11,32,23},                            {41,59,36},                            {47,18,19},                            {50,1,12},                            {19,24,85} };        int* b[3];        int(*c)[3];        b[0] = a[0];        c = ..
카카오 입사시험_문자열 압축: 문제 1-3 자 이제 마지막 문제이다. 이는 카카오톡의 입사시험 문제로 출제되었다! 위에서는 1개의 문자의 반복, 2개 연속 문자들의 반복을 이용하여 문자열을 압축하였다.이제 이를 단위를 3개 이상까지 확장하여 문자열을 압축해보려 한다. "abcabcdede"와 같은 경우, 문자를 2개의 단위로 자르면 ab/ca/bc/de/de 이므로 이를 압축하면 "abcabc2de”가 되지만 , 3개 단위로 자른다면 abc/abc/ded/e이므로  "2abcdede”가 되어 3개 단위가 가장 짧은 압축 방법이 됩니다. (단위로 자르고 마지막에 남는 문자열은 그대로 붙여주면 된다) 압축할 문자열 s가 매개변수로 주어질 때, 위에 설명한 방법으로 1개 이상 단위로 문자열을 잘라 압축하여 표현한 문자열 중 가장 짧은 것의 길이를 re..
카카오 입사시험_문자열 압축: 문제 1-2 (발전) 위의 문제에 제한사항 3을 제외하도록 프로그램을 수정하라. 즉, 반복 횟수에 제한이 없다. 예 #1ababababababababababababc 12abc5 버전1) 시험장에서 푼 것 응용 버전123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#define _CRT_SECURE_NO_WARNINGS#include stdio.h>#include string.h>#include stdlib.h> // 두 개의 문자들 연속에 대한 축약int solution2(char* s){    int count = 1;    char flag[1001] = { 0 ..
카카오 입사시험_문자열 압축: 문제 1-2 위의 문제 1-1의 방식은 반복되는 문자가 적은 경우 압축률이 낫다는 단점이 있습니다. 예를 들면, "abababcd"와 같은 문자열은 전혀 압축되지 않았습니다. "어피치"씨는 이러한 단점을 해결하기 위해 문자열을 이번에는 2개 단위로 잘라서 압축하여 더 짧은 문자열로 압축해보려 합니다. 예를 들어, "abababmnxyxy"의 경우 문자를 1개 단위로 자르면 전혀 압축되지 않지만, 2개 단위로 잘라서 압축하면 "3abmn2xy"로 표현할 수 있습니다. 주어진 문자열에 대해서 문자 2개의 단위로 잘랐을때 반복되는 것을 압축하여 표현하여 그 문자열의 길이를 출력하는 프로그램을 작성하라. 예 #1abababxyx 3abxyz 6 예#2aaaa 2aa 3 예#3xabab xabab 5  제한사항: 앞의 문제 ..
카카오 입사시험_문자열 압축: 문제 1-1 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다.최근에 대량의 데이터 처리를 위한 간단한 비손실 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타다는 것을 그 문자와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있습니다. 문제 1-1주어진 문자열에 대해서 반복되는 1개의 문자를 위와 같은 방식으로 압축하여 그 문자열과 길이를 출력하는 프로그램을 작성하라. 예#1aaabccd 3ab2cd 6 예#2aaaaaaaaaaa 11a 2 예#3abcd abcd 4  #제한사항..
LAB(함수의 값 출력) 아래의 재귀적 정의를 보고 재귀 함수 H를 완성하여 함수 값을 출력 하는 프로그램을 작성하라. Hi = 1 (if i = 0 or i = 1) = H0 x Hi-1 + H1 x Hi-2 + H2 x Hi-3 + … + Hi-1 x H0 (if i > 1) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #define _CRT_SECURE_NO_WARNINGS #include int printFunction(int n) { int H = 0; if (n == 0 || n == 1) return 1; else { for (int i = 0; i
LAB(사이클 숫자-순환) 앞의 예에서 get_cycle_number(int n) 함수를 순환을 이용하여 작성하고 main함수로 테스트하라. get_cycle_number 함수 안에서 지역변수를 사용하지 말라. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #define _CRT_SECURE_NO_WARNINGS #include int get_cycle_number(int n) { if (n == 1) { printf("%d ", n); return 1; } else if (n % 2 == 0) { printf("%d ", n); return 1 + get_cycle_number(n / 2); } else { printf("%d ", n); return 1 + ge..
Lab(조합출력) 수업에서 다룬 pick 함수: 조합 출력하기. int main() { int picked[4]; pick(7,4,picked,4); } picked의 알고리즘 1 2 3 4 5 6 7 8 9 10 11 12 13 void pick(int n, int picked[], int m, int toPick) { if (toPick == 0) // 다 골랐으면 picked의 내용을 출력 return; if (m == toPick) // 처음 고르는 거면 smallest = 0; else smallest = (마지막으로 고른 거의) 다음 큰 수 for (i = smallest; i