전체 글(251)
-
[강의 퀴즈 해설] CS50 2019 Chapter 6. 자료구조 Quiz
Q1. int 자료형 2개로 이뤄진 배열 list를 int 자료형 5개를 담을 수 있는 배열로 확장하고 싶습니다. 이를 위해 임시 포인터 *tmp를 선언하는 올바른 realloc() 코드는 무엇인가요?A1. int *tmp = realloc(list, 5 * sizeof(int)); Q2. 같은 크기를 가지는 배열과 리스트가 있습니다. 첫번째 값이 아닌 위치의 값에 접근하려고 할 때 소요되는 시간에 대한 설명으로 옳은 것은 무엇인가요?A2. 배열이 리스트보다 빠르다. Q3. node라는 구조체 안에 number 멤버가 정의되어 있습니다. node *n; 변수가 선언되어 있을 때, (*n).number 와 동일한 의미의 코드는 다음 중 무엇인가요? A3. n->number Q4. 연결 리스트에서 값을 검색..
2025.03.03 -
[강의 퀴즈 해설] CS50 2019 Chapter 5. 메모리 Quiz
Q1. 아래 코드를 실행하면 어떤 결과가 출력될까요?A1. 20, *(&n)으로 볼 수도 있는데, &n 은 n의 메모리 주소를 가리키고 *는 다시 &n의 메모리 주소가 가리키는 것을 호출. 즉 답은 n에 선언된 값인 20 Q2. 아래와 같이 변수 n과 p을 생성했습니다. 변수 n의 메모리 주소를 출력하는 올바른 코드는 다음 중 무엇인가요?A2. printf("%p\n", p); Q3. CS50 라이브러리의 string 자료형을 사용해 변수 s를 생성했습니다. 아래와 동일한 의미를 지니는 코드는 무엇인가요?A3. char *s = “CS50”CS50 라이브러리에서 string은 c언어에서 char*로 정의된 사용자 지정 자료형 Q4. 아래와 같이 변수 s를 생성했을때, 문자 ‘W’를 출력하는 코드는 무엇..
2025.03.03 -
[강의 퀴즈 해설] CS50 2019 Chapter 4. 알고리즘 Quiz
Q1. 알고리즘의 성능 및 시간 복잡도를 표현하는 표기법 중 하나로, 최악의 경우일때(상한)를 나타내는 것은 다음 중 무엇인가요?A1. O() Q2. name과 number 두개의 멤버를 갖는 person이라는 새로운 자료형을 구조체로 정의하고자 합니다. 아래 코드의 괄호 안에 들어갈 코드로 알맞은 것은 무엇인가요?A2. typedef struct, 맨 밑에 나오는 person을 구조체로 정의할때 typedef struct로 표현할 수 있다. Q3. 전화번호부 책에서 '이펭수'를 찾는 작업을 선형 검색으로 수행하게 될 경우 Big-O 는 어떻게 될까요? A3. O(n) Q4. 5 6 7 3 2 과 같은 숫자 리스트가 주어졌습니다. 오름차순 정렬을 위해 버블 정렬을 왼쪽 처음부터 오른쪽 끝까지 ‘한 번’ ..
2025.03.03 -
[강의 퀴즈 해설] CS50 2019 Chapter 3. 배열 Quiz
Q1. 컴파일링의 네 단계에 해당하지 않는 것은 무엇인가요?A1. 컴파일링의 네 단계는 전처리->컴파일->어셈블->링킹이다. 여기에 나오지 않는건 디버깅이니까 답은 디버깅 Q2. 소스코드 내에 존재하는 오류를 해결하기 위한 작업을 무엇이라고 하나요? A2. 디버깅(Debugging) Q3. 아래 코드는 기능상으로는 문제가 없지만 C 언어 스타일 가이드에는 부합하지 않습니다. 어떻게 변경하면 스타일 가이드에 부합한 코드가 될까요? A3. printf 함수를 들여쓰기해서 중괄호{} 사이에 포함되었음을 표현한다. Q4. char 자료형을 5개 담을 수 있는 [edwith]라는 이름의 배열을 선언하는 코드는 무엇인가요?A4. char edwith[5]; Q5. int scores[10]; 이라는 배열이 선언되어..
2025.03.02 -
[강의 퀴즈 해설] CS50 2019 Chapter 2. C언어 Quiz
Q1. 스크래치에서 아래 블록이 의미하는 것과 동일한 역할을 하는 함수를 C언어로 올바르게 작성한 것은 무엇일까요?A1. int main(void), C언어에선 main함수부터 실행이 된다. Q2. 스크래치에서 아래 블록이 의미하는 것과 동일한 역할을 C언어로 올바르게 표현한건 무엇인가요?A2. printf("Hello!"), 문자열은 ""로 감싸고 여기선 선언문이니까, C언어로는 출력문을 사용한다. Q3. C언어로 작성된 hello.c 소스코드를 컴퓨터가 이해할 수 있는 머신코드로 컴파일 하기 위해 어떤 명령어를 프롬프트에 입력해야할까요?A3. $clang hello.c, clang이 컴파일을 위한 명령어다. Q4. 사용자 이름이 저장된 문자열 변수 name와 "Hello"를 연결해서 출력하려합니다..
2025.03.02 -
[강의 퀴즈 해설] CS50 2019 Chapter 1. 컴퓨팅 사고 Quiz
네이버 부스트코스에 CS50 강좌가 한국어 번역으로 들어왔다는 소식이 있어서 한 번 쭉 보고 있다. 내용은 정말 쉽긴 하다. 물론 1년전만해도 이런걸 어려워했었지 내가..싶기도 하다. 비전공자도 이해하기 쉽게 설명하고 있다. 그리고 강의 요약이 강좌 밑에 제공이 되어서 퀴즈 해설 위주로 업로드 해본다. Q1. 숫자 10을 2진법으로 표현하기 위해서 최소 몇 개의 비트가 필요할까요?A1. 숫자 10을 2진법으로 표현하면 1010이다. 따라서 4개의 비트가 필요하다. Q2. 링크(https://ko.wikipedia.org/wiki/ASCII) 하단의 아스키 코드를 사용하여 [edwith](소문자)을 10진수로 표현해 보세요.A2. 101 100 119 105 116 104-> e = 101, d = 100..
2025.03.02