본문 바로가기

CS505

[CS50] 6강 자료구조 하버드 cs50 강의의 최종장 강의의 시작은 malloc과 포인터에 대한 복습으로 시작하고, malloc으로 선언한 배열의 크기를 조정할 수 있는 realloc 사용하는 방법을 배운다. // tmp라는 포인터에 기존에 정의한 list 배열에 // int크기(4byte) 5개의 메모리주소를 재 정의후 기존 배열 값들을 복사한다. int *tmp = realloc(list, 5*sizeof(int)); 연결 리스트 일반적으로 자료 구조란 C나 C++, 자바, 파이썬에 있는 프로그래밍 구조일 뿐이다. 컴퓨터 메모리에 정보를 각기 다른 방법으로 저장할 수 있도록 해준다. 배열에서는 각 인덱스의 값이 메모리상에 나란히 붙어서 저장되어 있다. 그래서 중간중간 데이터를 추가하려 할 때 realloc으로 배열의 길이를.. 2021. 12. 28.
[2021-12-20] CS알고리즘, 깃헙 공부 cs강의 4강 알고리즘 정리 오늘 오전에 알고리즘 문제를 봤는데 python이 잘 생각이 안나서 python기본 복습이 필요하다. 기존 python공부 파일에 저장된 github 토큰이 만료된건지 push가 안되서 토큰 재발급 받았다. 근데도 푸쉬가 안되서 push +master를 사용했는데 굉장히 안좋은 방법이라는 것을 알게 되었다. 그래서 깃헙에 대해 흐름파악공부를 했다. fork해서 pull request 하는거는 내일 마저 하고 오늘 공부한 내용을 정리했다. 혼자 개발하는 것에 익숙한 내가 언젠가 여럿이서 함께 사용하게 될 깃에 대해 개념은 알고 있어야겠다고 항상 생각하고있었는데 오늘 마침 git 명령어를 조금 더 익히고자 공부하다가 git project를 하는 과정을 공부하게 되었다. 항상 저 .. 2021. 12. 21.
[CS50] 제 3-2강 배열 이전 3-1에서는 배열이 어떤 역할을 하게 맡게 될지 알게 되었다면 3-2강에서는 직접 배열을 배워본다. 문자열과 배열 자료형들은 각각 할당된 메모리를 갖고 있다. 하드웨어적으로 메모리를 쉽게 얘기하면 여러 바이트들의 묶음이라고 설명한다. char타입의 메모리는 메모리 안의 저장공간인 수많은 작은 칸 중 하나를 요청한다. 각 칸은 어떤 방식으로든 0과 1을 표현하고 있을 것이다. 이제 실제로 코드를 작성해본다. "HI!"를 출력하고 싶은데 C는 기본적으로 문자열(string)이라는 자료형이 없다. 그래서 표현 할 수 있는 코드는 이렇게 작성될 수 있다. char c1 = 'H'; char c2 = 'I'; char c3 = '!'; 이런 코드는 디자인적으로도, 메모리 저장 방식에도 문제가 있다. 또 같은.. 2021. 12. 20.
[CS50] 제 2강 - C언어 CS50 2강에서는 C언어 기초를 배운다. 코딩에 사용되는 언어는 여러 가지가 있지만 C언어를 가장 기초적으로 알려준다. 1강에서 배운 알고리즘 기초를 어떻게 컴퓨터가 인간의 언어를 받아들이고 해석하는지 알려준다. 소스 코드 -> 번역을 수행하는 알고리즘 프로그램 = 컴파일러 -> 머신 코드 (2진법) 인간이 작성하는 소스코드는 컴파일러라는 프로그램이 기계어로서 최종적으로는 2진법 문장으로 변환시켜준다. "clang" 은 코드를 컴파일하는 프로그램의 이름이다. 어셈블리어를 출력하지만 어쨌든 머신 코드이다. 강의 중간중간 교수님은 학생들에게 질문이 있냐고 묻는데 #include int main (void) { printf("hello world"); } 코드가 이렇게 작성되어있었고, 질문 중 하나가 두 번.. 2021. 12. 18.
[CS50] 제 1강 - 컴퓨팅 사고 "오늘 모르는게 있으면 내일은 아는 내가 되자" 이 문구는 나의 가치관이자 항상 성장할 수 있게끔 해주는 원동력이라고 생각한다. 학창시절 신승범 선생님 수학 강의를 듣던 중 가장 와닿은 말이되었고, 현재까지 나의 가치관에 영향을 준 문구이다. What ultimately matters in this course is not so much where you end up relative to your classmates but where you end up relative to yourself when you began [중요한것은 당신이 반 친구들과 비교해서 어느정도 해냈는지가 아니라 처음 시작할 때의 여러분 자신과 비교하여 얼마나 성장했는가이다.] 강의를 시작하기 앞서 교수님께서 ppt에 이 문구를 띄우.. 2021. 12. 16.