본문 바로가기

NOTES/CS50

(6)
[CS50] Chapter 6. 자료구조 HTML 삽입 미리보기할 수 없는 소스 최초작성일: 2023-03-01 마지막 수정일: 2023-03-04 부스트코스 강의 수강 6. 자료구조 Data Structures 1. malloc과 포인터 복습 포인터의 개념과 malloc 함수의 용법을 잘 이해할 수 있다. 포인터, malloc 포인터 선언 int main(void) { int *x; // 정수를 가리키는 포인터를 만들고 x라고 부름 int *y; // 정수를 가리키는 변수 y x = malloc(sizeof(int)); // int 크기의 메모리를 만들어 x에 할당 *x = 42; // x에 저장된 주소로 가서 42를 저장 *y = 13; // 변수를 위한 공간을 할당하지 않음 } 포인터를 할당하면 어떤 포인티를 가리킬지 별개로 설정하는 과정..
[CS50] Chapter 5. 메모리 HTML 삽입 미리보기할 수 없는 소스 최초작성일: 2023-02-19 마지막 수정일: 2023-02-25 부스트코스 강의 수강 5. 메모리 1. 메모리 주소 16진법을 읽고 쓸 수 있다. 메모리 주소에 접근하고 값을 받아오는 코드를 C로 작성할 수 있다. 16진법, 메모리 주소 진법 - 컴퓨터나 휴대폰 속 메모리의 위치를 표현하는 데 매우 유용. 각 바이트에 고유한 숫자를 부여하여 메모리 속 내용물에 대해 이야기할 수 있다. 16진법(Hexadecimal) 컴퓨터가 숫자를 16진법으로 표현하는 경우가 많다. 16진수를 사용하면 10진수보다 2진수를 간단하게 나타낼 수 있다. 0 ~ 9, A ~ F: F는 15 8bit 이진법으로 나타낼 수 있는 최대 수는 255(11111111): 16진법으로는 FF ..
[CS50] Chapter 4. 알고리즘 HTML 삽입 미리보기할 수 없는 소스 최초작성일: 2023-02-11 마지막 수정일: 2023-02-13 부스트코스 강의 수강 4. 알고리즘 1. 검색 알고리즘 주어진 배열 속에서 특정 값을 찾는 방법을 설명할 수 있다. 선형 검색, 이진 검색 배열은 한 자료형의 여러 값들이 메모리상에 모여 있는 구조 컴퓨터는 모든 숫자를 한 번에 파악할 수 없고 배열 속 내용물을 하나씩 볼 수 있다. 그래서 배열 속에서 특정 값을 찾는 검색 알고리즘이 필요 선형 검색 배열의 인덱스를 처음부터 끝까지 하나씩 증가시키면서 방문하여 그 값이 속하는지를 검사 0부터 (n - 1)까지의 i 만약 i번째 요소가 50이면 True를 반환 50이 없으면 False 반환 이진 검색 만약 배열이 정렬되어 있다면, 배열 중간 인덱스부터..
[CS50] Chapter 3. 배열 HTML 삽입 미리보기할 수 없는 소스 최초작성일: 2023-02-04 부스트코스 강의 수강 3. 배열 1. 컴파일링 컴파일링의 네 단계를 설명할 수 있다. 컴파일링, 어셈블링, 링킹 전처리 단계(preprocessing, precompile) #으로 시작되는 C 소스 코드는 실질적인 컴파일이 이루어지기 전 실행할 것을 알려줌 참조하라고 써놓은 파일(라이브러리)을 해당 파일의 실제 파일로 대체 컴파일링(compiling) 소스 코드를 머신 코드로 바꾸는 단계 소스 코드가 어셈블리 코드로 바뀜 어셈블리어는 저수준 프로그래밍 언어 컴퓨터가 이해할 수 있는 언어와 최대한 가까운 프로그램으로 어셈블링(assembling) 어셈블리 코드를 0과 1로 이루어진 머신 코드(기계어, 오브젝트 코드)로 만듦 링킹(lin..
[CS50] Chapter 2. C언어 HTML 삽입 미리보기할 수 없는 소스 최초작성일: 2023-01-27 부스트코스 강의 수강 2. C언어 1. C 기초 C로 "hello, world"를 출력하는 프로그램을 만들 수 있다. stdio.h, clang, 컴파일러 C언어 #include //필요한 것. 없으면 컴퓨터가 printf를 이해하지 못함 //'stdio.h'라는 이름의 파일을 찾아 'printf' 함수에 접근할 수 있게 함 int main(void) //스크래치의 '초록 깃발을 클릭했을 때' 블록. '시작'의 의미 { printf("hello, world\n"); //스크래치 '말해라' 블록 //개행 없으면 터미널에서 줄바꿈 안된 채로 나타남 //텍스트는 큰따옴표 안에. 문장 끝에는 세미콜론(;) /*이 사이에 작성되는 것도 주석*..
[CS50] Chapter 1. 컴퓨팅 사고 HTML 삽입 미리보기할 수 없는 소스 최초작성일: 2023-01-24 부스트코스 강의 수강 1. 컴퓨팅 사고 (Computational Thinking, Scratch) 1. 2진법 컴퓨터 과학이 무엇인지 정의하고, 컴퓨터가 정보를 표현하는 방법에 대해 설명할 수 있다. 컴퓨터 과학, 2진법, 비트, 바이트 컴퓨터 과학 문제를 해결하는 과정 어떤 입력이 있을 때 어떠한 출력을 찾는, 문제에 대한 답을 찾는 중간 과정 입력과 출력을 표현하기 위해서는 모두가 동의할 약속(표준)이 필요 -> 표현 방법 2진법 0과 1로만 표현 컴퓨터는 2진법으로 글자, 사진, 영상, 소리 등을 저장 전기가 있고 없고가 컴퓨터에 대한 우리의 입력 방식 전기를 통해 연산하는, 전기를 켜고 끄는 방식으로 작동하는 컴퓨터에게 2진..