전체 글38 [CS50] 6강 자료구조 하버드 cs50 강의의 최종장 강의의 시작은 malloc과 포인터에 대한 복습으로 시작하고, malloc으로 선언한 배열의 크기를 조정할 수 있는 realloc 사용하는 방법을 배운다. // tmp라는 포인터에 기존에 정의한 list 배열에 // int크기(4byte) 5개의 메모리주소를 재 정의후 기존 배열 값들을 복사한다. int *tmp = realloc(list, 5*sizeof(int)); 연결 리스트 일반적으로 자료 구조란 C나 C++, 자바, 파이썬에 있는 프로그래밍 구조일 뿐이다. 컴퓨터 메모리에 정보를 각기 다른 방법으로 저장할 수 있도록 해준다. 배열에서는 각 인덱스의 값이 메모리상에 나란히 붙어서 저장되어 있다. 그래서 중간중간 데이터를 추가하려 할 때 realloc으로 배열의 길이를.. 2021. 12. 28. [CS50] 5강 메모리 메모리 주소 컴퓨터는 숫자를 10진수나 2진수가 아닌 16진수로 표기할 때가 많다. 컴퓨터에서 데이터를 처리하기 위해 16진수를 사용할 때 장점이 있기 때문이다. 이미지를 표현할 때 RGB형태로 데이터를 갖고 있는데 css를 다룰 때 한 번쯤은 봤을 #FFFFFF 문자열이다. 이것이 의미하는것이 16진수들인데 R : G : B = FF : FF : FF 인 것이다. 컴퓨터는 8개 비트가 모인 바이트 단위로 정보를 표현한다. 2개의 16진수는 1byte의 2진수로 변환되기 때문에 정보를 표현하기 매우 유용하다. 앞서 16진수를 말한 이유는 메모리의 주소는 16진수로 표현한다. 메모리에 수많은 주소를 표현하기에 아주 적절한 단위일 것이다. 포인터 C에서 포인터를 사용할 때는 아래처럼 변수명 앞에 ' * '를.. 2021. 12. 23. [2021-12-20] CS알고리즘, 깃헙 공부 cs강의 4강 알고리즘 정리 오늘 오전에 알고리즘 문제를 봤는데 python이 잘 생각이 안나서 python기본 복습이 필요하다. 기존 python공부 파일에 저장된 github 토큰이 만료된건지 push가 안되서 토큰 재발급 받았다. 근데도 푸쉬가 안되서 push +master를 사용했는데 굉장히 안좋은 방법이라는 것을 알게 되었다. 그래서 깃헙에 대해 흐름파악공부를 했다. fork해서 pull request 하는거는 내일 마저 하고 오늘 공부한 내용을 정리했다. 혼자 개발하는 것에 익숙한 내가 언젠가 여럿이서 함께 사용하게 될 깃에 대해 개념은 알고 있어야겠다고 항상 생각하고있었는데 오늘 마침 git 명령어를 조금 더 익히고자 공부하다가 git project를 하는 과정을 공부하게 되었다. 항상 저 .. 2021. 12. 21. [CS50] 제 4강 알고리즘 강의에서는 알고리즘을 배우면서 중요한 것은 알고리즘의 흐름, 개념을 잘 얻어가는 것이라고 한다. 강의는 경험인 것이고 익힘은 계속 적용해 나가면서 익히는 것이다. 검색 알고리즘 메모리를 바이트의 격자 배열로 취급하면 우리가 원하는 대로 사용할 수 있다. 서랍을 열어서 원하는 물건을 찾는다고 한다면 우리는 서랍을 한 번에 하나씩 열어가면서 찾을 것이다. 정렬되어있는 것을 알지 못하기 때문에 서랍을 한 개씩 여는 방법을 사용한다. - 선형 검색 혹은 정렬되어있는 것을 알고 있다면 반 씩 쪼개서 찾아가는 방법을 사용할 수 있다. - 이진 검색 이진 검색은 처음에 강의에서 알려준 전화번호부에서 이름 찾는 방식과 동일한 방법이다. 검색해야 하는 조건을 반씩 줄일 수 있기 때문에 선형 검색보다 높은 효율을 낼 수 .. 2021. 12. 20. [2021.12.19] CS공부 cs강의 주말이라는 생각에 이상하게 공부가 손에 안잡혔지만 cs강의를 다시 듣고 정리했다. 내일다시 레쓰고 2021. 12. 20. 이전 1 ··· 3 4 5 6 7 8 다음