본문 바로가기

C

(44)
[부스트코스]메모리 퀴즈 3 Q> string 자료형을 정의해서 사용하면 어떤 장점이 있을까요? A> 데이터를 변수에 저장할 때 각 변수에는 특정 데이터 유형이 할당되어야 합니다. 데이터 유형을 균일하게 유지해야하며 문자열로 설정되어 있는 경우 숫자가 들어와도 문자열로 변환이 가능합니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]메모리 퀴즈 2 Q> 포인터의 크기는 메모리의 크기와 어떤 관계가 있을까요? A> 64비트 아키텍처는 64bit / 8 = 8byte / 32비트 아키텍처는 32bit / 8 = 4byte 입니다. 64비트에서 포인트의 크기를 보면 8바이트로 표시되는 것을 알 수 있습니다. #include int main(void) { printf("The size of an int pointer is %ld bytes!\n", sizeof(char *)); printf("The size of a char pointer is %ld bytes!\n", sizeof(int *)); printf("The size of a short pointer is %ld bytes!\n", sizeof(short *)); printf("The size..
[부스트코스]메모리 퀴즈 1 Q> 'CS50'을 16진수로 표현해볼까요? A> C -> 0x43 S -> 0x53 5 -> 0x35 0 -> 0x30 https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]알고리즘 퀴즈 9 Q> 1. 알고리즘의 성능 및 시간 복잡도를 표현하는 표기법 중 하나로, 최악의 경우일때(상한)를 나타내는 것은 다음 중 무엇인가요? O() Ω() θ() φ() 2. name과 number 두개의 멤버를 갖는 person이라는 새로운 자료형을 구조체로 정의하고자 합니다. 아래 코드의 괄호 안에 들어갈 코드로 알맞은 것은 무엇인가요? typedef struct function struct construct function 3. 전화번호부 책에서 '이펭수'를 찾는 작업을 선형 검색으로 수행하게 될 경우 Big-O 는 어떻게 될까요? O(1) O(log n) O(n) O(n^2) 4. 5 6 7 3 2 과 같은 숫자 리스트가 주어졌습니다. 오름차순 정렬을 위해 버블 정렬을 왼쪽 처음부터 오른쪽 끝까지 ‘한 ..
[부스트코스]알고리즘 퀴즈 8 Q> 병합 정렬을 선택 정렬이나 버블 정렬과 비교했을 때 장점과 단점은 무엇이 있을까요? A> 병합 정렬은 분할(divide), 해결(conquer) 및 합치는(combine) 기술을 사용합니다. 병합 정렬의 장점은 느린 액세스 데이터 정렬(예: 테이프 드라이브)에 가장 적합한 경우입니다. 또한 파일 크기가 성능에 부정적인 영향을 미치지 않습니다. 순차적으로 액세스되는 목록을 처리하는 데 있어 병합 정렬 알고리즘이 더 효과적입니다. 안정적인 정렬 구현이 가능합니다. 단점으로는 병합 정렬의 실행 시간은 0(n log n)입니다. 병합 정렬을 사용하려면 임시 배열 TEMP에 대해 0(n)의 추가 메모리 간격이 필요합니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 ..
[부스트코스]알고리즘 퀴즈 7 Q> 반복문을 쓸 수 있는데도 재귀를 사용하는 이유는 무엇일까요? A> 재귀와 반복문에 가장 큰 차이점은 반복문은 코드 블록을 실행하면서 매번 시퀀스 끝에 있는지 확인하지만, 재귀는 그러한 순차적 끝이 없습니다. 이를 다시 말하면, 반복문은 루핑 중인 시퀀스의 끝에서 끝납니다.. 그러나 재귀 함수는 반드시 일련의 데이터를 가지고 있지 않기 때문에 무한정 지속될 수 있습니다. 대신에, 재귀 함수는 기본 조건이라고 불리는 것을 가지고 있습니다. 기본 조건은 조건이 충족될 경우 루프를 종료하는 조건이 있습니다.. 재귀를 사용하는 목적은 작고 반복적인 문제로 분해될 수 있는 문제를 해결할 때 사용합니다. 즉, 가능한 많은 분기가 있고 반복적인 접근으로는 너무 복잡한 일을 하기에 좋습니다. https://www...
[부스트코스]알고리즘 퀴즈 6 Q> 선택 정렬의 실행 시간의 하한도 버블 정렬처럼 더 단축시킬 수 있을까요? A> 최악의 성능 : O (n2) 최상의 케이스 성능 : O (n2) 평균 케이스 성능 : O (n2) 최악의 공간 복잡성 : 총 O (n), 보조 O (1) 선택 정렬은 버블 정렬과 유사하지만 다른점은 1 패스당 스왑이 1개 뿐이라는 점이 있습니다. 그래서 어떤 점에서 보면 버블 정렬보다 선택 정렬이 더 최적화 되어있다고 할 수 있습니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]알고리즘 퀴즈 5 Q> 선택정렬을 좀 더 효율적으로 어떻게 바꿀 수 있을까요? A> 선택정렬의 개선 사항은 최대값과 최소값을 동시에 선택한 다음 배열을 두 끝에서 정렬하는 방법입니다. begin for i := 0, and j := n-1, increase i by 1, and decrease j by 1, until i>=j, do min := minimum element from index i to j max := maximum element from index i to j i_min := index of min i_max := index of max exchange the arr[i] and arr[i_min] if arr[i_min] is same as max, then swap arr[j] and arr[i_mi..