부스트코스(Boostcourse) CS50 코칭스터디 2기 수료 후기 😆
2021. 3. 4. 00:10
스터디&교육/부스트코스 CS50 2기
2월 26일 라이브 강의를 마지막으로 부스트코스 CS50 2기 코칭 스터디가 마무리 되었다. 처음에 부스트코스에서 코칭스터디를 지원했고 지원 결과 합격해 스터디를 듣게 되었는데 처음 접해보는 온라인 스터디였기 때문에 재밌을 것 같아서 설렜던 기억이 난다. 스터디가 시작되고 강의를 듣고 들은 내용을 블로그에 열심히 정리해야지 했었는데 2강인가? 까지 정리하다가 더 하지는 못했다. 🤣 (나중에 시간나면 정리해야지 !) 난이도가 점점 올라가기도 했고 공부해야할 내용이 많아져 정리하면서 하기에는 시간이 너무 부족했다. 매 주 미션을 풀어야 하기 때문에 강의에 대한 내용을 정리하기 보다는 미션을 푸는데 집중했던 것 같다. 그래서 공부한 내용을 따로 정리할 시간이 부족해 심화 과정에 대한 내용만 정리해서 올렸던 것..
[부스트코스 CS50] 6주차 심화 과정 💎 생각해보기
2021. 2. 25. 04:04
스터디&교육/부스트코스 CS50 2기
cs50 2기 6주차에서 배운 연결리스트, 트리, 트라이, 해쉬, 큐, 스택 등 여러 자료구조에 대해서 배웠다. 심화 과정으로 구조체와 배열, 구조체와 연결 리스트를 사용해서 스택과 큐를 구현해보았다. 📌 문제 1 구조체와 배열을 통해 스택을 구현해보는 문제였는데 스택에 대해서 잘 이해하고 있고 배열의 인덱스를 잘 활용한다면 풀 수 있지 않을까 생각했다. pop 함수와 peek 함수의 내용을 구현해보는 문제였기 때문에 빈칸 채우기 느낌의 문제였기 때문에 어렵지 않게 풀 수 있었던 것 같다. 따라서, 아래와 같이 풀어보았다. #include #include typedef struct stack{ int top; int capacity; int* array; } Stack; Stack* createStack..
부스트코스(Boostcourse) CS50 5주차 심화 과정 💎 생각해보기(4)
2021. 2. 19. 22:00
스터디&교육/부스트코스 CS50 2기
이번에는 c언어에서 메모리와 관련된 함수가 어떤 것이 있는지 알아보았다. 메모리와 관련된 함수는 2가지의 헤더 파일을 통해 사용할 수 있었다. [ stdlib.h 헤더파일 ] void * malloc ( size_t size ); size 바이트의 메모리를 힙에서 할당하여 반환한다. void * calloc ( size_t num, size_t size );(num * size) 바이트의 메모리를 힙에서 할당하여 반환한다. 메모리를 할당할 때 모든 값을 0으로 초기화한다. void * realloc ( void * ptr, size_t size );ptr이 가리키는 메모리를 size 바이트만큼 힙에서 재할당하여 반환한다. void free ( void * ptr );ptr이 가리키는 메모리를 해제한다.(..
부스트코스(Boostcourse) CS50 5주차 심화 과정 💎 생각해보기(3)
2021. 2. 19. 21:48
스터디&교육/부스트코스 CS50 2기
strcpy() 와 strncpy() 의 차이점에 대해서 정리해보았다. strcpy() 와 strncpy() 는 문자열을 복사해주는 함수다. 두 함수는 string.h 헤더 파일에 선언되어 있다. 우선, 두 함수의 원형을 확인해보자. char* strcpy(char* destination, const char* source); char* strncpy(char* destination, const char* source, size_t num); 두 함수의 원형을 알 수 있듯이 다른 점은 strncpy() 함수는 복사할 문자열의 길이를 지정할 수 있다는 것이다. 그 외에도 다음과 같이 각 함수의 특징을 알 수 있다. strcpy() 함수는 null byte를 포함하는 src문자열을 dest 버퍼에 복사한다...
부스트코스(Boostcourse) CS50 5주차 심화 과정 💎 생각해보기(2)
2021. 2. 19. 21:39
스터디&교육/부스트코스 CS50 2기
첫 번째로는 이중 포인터에 대한 내용이었고 이번에는 메모리와 오버플로우에 대한 내용에 대해서 알아보았다. 메모리에는 스택, 힙, 데이터, 텍스트 영역 등 다양한 영역으로 나눌 수 있다. 메모리 stack 영역은 지역 변수와 매개 변수가 저장되는 영역이다. 함수가 시작되면 해당 함수의 지역 변수가 스택에 쌓였다가 함수가 종료되면 자동으로 해제된다. [ 스택 오버플로우가 발생하는 경우 ] 스택 오버플로우가 발생하는 경우에 대해서 대표적으로 재귀 함수에 대해서 알아보았다. 재귀함수라고 자기 자신의 함수를 호출해 가독성을 높여주는 함수다. 하지만 재귀함수를 잘못 사용하게 되면 stack overflow 를 발생시키게 된다. 함수를 호출할 때 함수의 파라미터와 리턴 값, 복귀 주소(RET) 등 stack 에 저장..
부스트코스(Boostcourse) CS50 5주차 심화 과정 💎 생각해보기(1)
2021. 2. 19. 21:32
스터디&교육/부스트코스 CS50 2기
5주차 메모리에 대한 내용의 강의를 듣고 심화 과정을 해결해 보았다. 📌 문제 1 첫 번째 문제는 이중 포인터를 사용해서 배열의 값들을 출력하는 문제였다. 배열의 인덱스를 사용하는 것이 아닌 이중 포인터를 통해 값을 가져와야 한다. 기본 값으로 2차원 배열이 주어지고 해당 배열을 이중 포인터를 통해서 값을 출력하면 되는 문제였다. 주어진 2차원 배열은 다음과 같다. Int arr[6][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22, 23, 24, 25}, {26, 27, 28, 29, 30} }; 문제를 풀기 위해서는 포인터를 이용해 배열의 값을 가져와야 하는 문제였고 포인터에 대한 ..
부스트코스(Boostcourse) CS50 4주차 심화 과정 💎 생각해보기
2021. 2. 3. 05:05
스터디&교육/부스트코스 CS50 2기
4주차 심화 과정에 대해서 내가 작성한 코드를 정리해보았다. 📌 문제 1 우선 문제를 풀기 위해서 애너그램 대해서 이해해야 했다. 애너그램이란 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말하는데 예를 정말 잘 들어주셔서 쉽게 이해할 수 있었다. 예를 들어, 영어의 'tea'와 'eat'와 같이 각 단어를 구성하는 알파벳은 같은데 뜻이 다른 두 단어 그리고 우리말에서 '문전박대' 와 '대박전문' 과 같이 같은 네 글자를 사용하지만 순서를 바꾸어 다른 뜻으로 사용할 수 있는 것을 애너그램이라고 한다. 문제를 풀기 위해서 강의를 통해 배운 알고리즘을 사용해야 했고 함수를 효율적으로 사용하고 싶어 함수를 사용하는 부분에 더 많은 고민을 했던 것 같다. 그리고 코딩 컨벤션을 통해 코드 스타일을 적용해 ..
부스트코스(Boostcourse) CS50 3주차 심화 과정 💎 생각해보기
2021. 1. 23. 18:21
스터디&교육/부스트코스 CS50 2기
3주차 심화 과정에 대해서 내가 작성한 코드를 정리해보았다. 📌 문제 1 문제를 해결하는 과정에서 출력하는 부분은 어려움 없이 진행된 것 같았다. 전체적으로 어려웠던 점은 함수화하는 과정에서 변수를 어떻게 설정해주어야하고 값을 어떻게 담아서 보내주어야하는지 고민했던 것 같다. 그리고 포인터를 통해서 변수에 값을 어떻게 저장해주어야 하는지에 대해서도 많이 찾아봤던 것 같다. 마지막으로 while 반복문에서 scanf 함수로 정수를 입력받는 데 문자를 입력하게 되면 무한루프에 빠지는 것이었다. rewind(), fflush() 등 함수를 사용해 표준 입력 버퍼라는 것을 초기화해주어야 한다고 하는데 아무리 사용해봐도 적용이 되지 않았다. 그래서 getchar() 함수를 통해 초기화해주어 문자가 입력되었을 때 ..