본문 바로가기

C

(44)
[부스트코스]자료구조 퀴즈 9 Q> 1. int 자료형 2개로 이뤄진 배열 list를 int 자료형 5개를 담을 수 있는 배열로 확장하고 싶습니다. 이를 위해 임시 포인터 *tmp를 선언하는 올바른 realloc() 코드는 무엇인가요? int *tmp = realloc(list, 2 * sizeof(int)); int *tmp = realloc(5 * sizeof(int), list); int *tmp = realloc(list, 5 * sizeof(int)); int *tmp = realloc(5, list); 2. 같은 크기를 가지는 배열과 리스트가 있습니다. 첫번째 값이 아닌 위치의 값에 접근하려고 할 때 소요되는 시간에 대한 설명으로 옳은 것은 무엇인가요? 배열이 리스트보다 더 빠르다 리스트가 배열보다 더 빠르다 배열과 리스트..
[부스트코스]자료구조 퀴즈 8 Q> 트라이가 해시 테이블에 비해 가지는 장점과 단점은 무엇일까요? A> 트라이는 해시 테이블보다 느리고, 더 많은 메모리를 소비합니다. 하지만 해시 테이블에서는 어려운 모든 단어를 알파벳 순으로 쉽게 출력을 할 수 있다는 점입니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]자료구조 퀴즈 7 Q> 해시 함수는 어떻게 만들 수 있을까요? A> 해시 테이블에서 데이터는 각 데이터 값이 고유한 고유 인덱스 값을 갖는 배열 형식으로 저장됩니다. 원하는 데이터의 색인을 알면 데이터 액세스가 매우 빨라집니다. 해시 함수를 사용하여 버킷 또는 슬롯의 배열로 인덱스를 계산합니다. uint32_t jenkins_one_at_a_time_hash(char *key, size_t len) { uint32_t hash, i; for(hash = i = 0; i < len; ++i) { hash += key[i]; hash += (hash > 6); } hash += (hash > 11); hash += (hash
[부스트코스]자료구조 퀴즈 6 Q> 값을 검색할 때 이진 검색 트리가 기본 연결 리스트에 비해 가지는 장점과 단점은 무엇이 있을까요? A> 연결 리스트와 비교하여 효율적인 데이터 구조로 간주됩니다. 검색 과정에서 단계마다 하위 트리의 절반을 제거 합니다. 이진 검색 트리에서 요소를 검색하는 데는 o(logn2) 시간이 걸립니다. 최악의 경우 요소를 검색하는 데 걸리는 시간은 0(n)입니다. 또한 배열 및 링크된 목록에 비해 삽입 및 삭제 작업의 속도를 높입니다. https://www.boostcourse.org/cs112/ 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]자료구조 퀴즈 5 Q> 배열이 정렬되어 있지 않은 경우의 검색 소요 시간을 연결 리스트의 검색 시간과 비교해보세요. A> 정렬되지 않은 배열의 최악의 복잡성은 O(n/2)입니다. 연결 리스트의 검색 소요 시간은 O(n) 입니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]자료구조 퀴즈 4 Q> 연결 리스트의 중간에 node를 추가하거나 삭제하는 코드는 어떻게 작성할 수 있을까요? A> 노드가 목록에 있는지 확인하고 존재하는 경우 새 노드의 다음 포인터를 다음 노드의 다음 포인터가 있는 다음 노드를 가리킨다. node* insert_before(node *head, int data, node* nxt) { if(nxt == NULL || head == NULL) return NULL; if(head == nxt) { head = prepend(head,data); return head; } /* 첫 번째 노드부터 시작하여 이전 노드를 찾습니다. */ node *cursor = head; while(cursor != NULL) { if(cursor->next == nxt) break; cur..
[부스트코스]자료구조 퀴즈 3 Q> 연결 리스트를 배열과 비교했을 때 장단점은 무엇이 있을까요? A> 배열의 장점으로는 연속 메모리 위치에 저장되므로 어떤 요소에도 접근할 수 있고 다음 수치는 내가 무엇을 의미하는지 더 자세히 보여줄 수 있습니다. 하지만 단점은 메모리 낭비가 심하다는 점과 삽입 / 삭제 시간이 느리다는 점을 들 수 있습니다. 연결 리스트는 배열과 달리 링크된 목록의 요소는 연속 메모리 위치에 있지 않습니다. 연결 리스트의 장점으로는 메모리 사용 개선이 있으며 삽입 / 삭제 시간이 빠르다는 점을 들 수 있습니다. 다만, 단점으로 검색 시간이 느리다는 점을 들 수 있습니다. https://www.boostcourse.org/cs112/ 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boost..
[부스트코스]자료구조 퀴즈 2 Q> 이미 할당된 메모리의 크기를 조절할 때 임시 메모리를 새로 할당해줘야 하는 이유는 무엇인가요? A> 힙에 필요한 메모리 블록을 생성하여 동적으로 메모리를 관리할 수 있게 됩니다. 또한, 프로그램에서 언제든지 변경할 수 있게 허용해주는 기능을 제공 합니다. 프로그램을 작성하는 사람이 특정 구조가 얼마나 많은 메모리를 차지하게 될지 모를때 필요합니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org