본문 바로가기

C

(44)
[부스트코스]알고리즘 퀴즈 4 Q> 버블 정렬이 효율적인 경우는 어떤 경우인가요? 반대로 어떤 경우에 비효율적이게 될까요? A> 버블 정렬의 장/단점 중 장점으로 데이터는 제자리에 정렬되므로 메모리 오버헤드가 거의 없으며, 일단 정렬되면 데이터는 메모리에 저장되어 처리 준비가 된다. 가장 큰 단점은 분류에 걸리는 시간이다. 평균 시간은 테이블 요소의 수가 증가함에 따라 거의 기하급수적으로 증가한다. 버블 정렬의 시간 공간 복잡성을 보면 최악의 경우 시간 복잡성 [Big-O ]: O(n2) 모범 사례 시간 복잡성 [Big-Ω]: O(n) 평균 시간 복잡성 [Big-θ]: O(n2) 공간 복잡성: O(1) https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 ww..
[부스트코스]알고리즘 퀴즈 3 Q> 전화번호부와 같이 구조체를 정의하여 관리 및 검색을 하면 더 편리한 예는 또 무엇이 있을까요? A> #include #include #include struct Company { int no; char name[10]; char id[10]; char division[50]; }; int main(void) { struct Company employee1; struct Company employee2; employee1.no = 12345; strcpy(employee1.name, "Ankiwoong"); strcpy(employee1.id, "ankw"); strcpy(employee1.division, "contract worker"); employee2.no = 23456; strcpy(emp..
[부스트코스]알고리즘 퀴즈 2 Q> 실행시간의 상한이 낮은 알고리즘이 더 좋을까요, 하한이 낮은 알고리즘이 더 좋을까요? A> 상한과 하한 이론은 문제를 해결하기 위한 가장 낮은 복잡성 알고리즘을 찾는 방법을 찾아야됩니다. 하지만 타이트 바운드 경우 알고리즘의 계산 복잡도에 대한 하한과 상한은 모두 동일합니다. https://ko.wikipedia.org/wiki/%EC%A0%90%EA%B7%BC_%ED%91%9C%EA%B8%B0%EB%B2%95 점근 표기법 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 점근 표기법(asymptotic notation)은 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법이다. 알고리즘 ko.wikipedia.org htt..
[부스트코스]알고리즘 퀴즈 1 Q> 만약 정렬되지 않은 배열이 있다면, 선형 검색이 빠를까요 이진 검색이 빠를까요? A> 선형 검색은 요소를 정렬도니 순서대로 정렬할 필요가 없고 이진 검색은 요소의 순서를 정렬하고 검색해야 왼다. 데이터 세트 크기에 따라 달라질 수 있다. 데이터 세트 크기가 크면 이진 검색은 선형 검색보다 빠른 처리 속도를 가진다. 선형 검색 알고리즘 https://ko.wikipedia.org/wiki/%EC%88%9C%EC%B0%A8_%EA%B2%80%EC%83%89_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 순차 검색 알고리즘 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 순차 검색 알고리즘(sequential search algorithm), 또는 선형 검색 알고..
[부스트코스]C 언어 배열 9 Q> 1. 컴파일링의 네 단계에 해당하지 않는 것은 무엇인가요? 어셈블링(assembling) 링킹(linking) 전처리(preprocessing) 디버깅(debugging) 2. 소스코드 내에 존재하는 오류를 해결하기 위한 작업을 무엇이라고 하나요? 리졸빙(resolving) 디버깅(debugging) 컴파일링(compling) 체킹(checking) 3. 아래 코드는 기능상으로는 문제가 없지만 C 언어 스타일 가이드에는 부합하지 않습니다. 어떻게 변경하면 스타일 가이드에 부합한 코드가 될까요? 여는 중괄호({)와 같은 줄에 printf 함수를 작성한다. int main(void) 바로 옆에서 여는 중괄호({)를 시작한다. printf 함수와 세미콜론(;) 사이에 공백을 추가한다. printf 함수를..
[부스트코스]C 언어 배열 8 Q> 명령행 인자는 프로그램의 확장성에 어떤 도움이 될까요? 구체적인 예시를 떠올려보세요. A> 명령 줄 인수가 전달되면 모든 문자의 문자열이 구문 분석된다. 몇 가지 규칙에 따라 문자열이 구분되지만, 모든 문자가 다음 중 하나면 문자, 숫자 또는 공백, 셀이 화이트 스페이스를 기준으로 구분한다. 또한, 명령 줄 인수는 사용자나 다른 프로그램에 입력 데이터를 전달할 수 있는 좋은 방법을 제공한다. 그리고 명령 줄이 전달되지 않는 경우 언제든지 이를 감지하고 사용자에게 입력을 요청할 수 있어서 확장성에 도움이 된다. https://www.boostcourse.org/cs112/ 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]C 언어 배열 7 Q> string.h와 ctype.h의 라이브러리에 다른 어떤 함수가 있는지 확인해 보고, 어떤 함수를 어떻게 활용해 볼 수 있을지 생각해봅시다. * string.h와 ctype.h를 검색해보시면 사람들이 잘 정리한 글을 찾을 수 있을 것입니다. 코딩에서 자기가 검색해서 공부해보는 것도 매우 중요하기 때문에 직접 찾아보도록 하겠습니다. A> string.h #include #include // Take a string and get the length int main(void) { char str[100]; scanf("%s", str); // It is a standard input function in C language, allowing users to input various data accord..
[부스트코스]C 언어 배열 6 Q> 널 종단 문자는 왜 필요할까요? A> null 문자열의 ASCII 값은 0이다. 문자열이 끝나는 위치를 추적하는 데 사용되는 문자이며 문자열의 길이를 계산하는 데 사용된다. null 종단이 없는 경우 메모리에 있는 문자열이 문자열과 상관없는 다음 메모리 데이터 블록으로 이동한다. https://www.boostcourse.org/cs112/ 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org