목록알고리즘/CS50 (23)
라떼는말이야
www.notion.so/4-3f929c9129e541a98d860c38ae7f2afb ✔︎ 미션 4 1. 미션 제목 www.notion.so 1. 미션 제목 뒤에서 k번째 노드는 무엇일까요? 2. 지시문 이번에는 연결리스트의 응용 문제를 풀어보겠습니다. 연결리스트가 하나 주어졌을 때 해당 연결 리스트의 뒤에서 k번째 노드의 값은 무엇일지 알아낼 수 있을까요? 예를 들어, 9->8->4->14->5 라는 리스트가 주어질 때 뒤에서 2번째 노드를 출력하라고 하면 14가 출력이 되어야 합니다. 연결리스트가 이미 만들어져 있다고 가정하고, 아래와 같은 함수가 주어졌을 때 뒤에서 k번째 노드를 출력할 수 있을까요? typedef struct node{ int data; struct node* next; } No..
www.notion.so/3-9562fe0842f947a9918b0bab6796ab8a ✔︎ 미션 3 1. 미션 제목 www.notion.so 1. 미션 제목 배열로 Queue 만들어보기! 2. 지시문 이번 과제에서는 Queue를 구현해 봅시다! Stack 과 Queue의 구현은 얼핏 보면 비슷해 보이지만 막상 구현해 보면 많은 부분이 다르답니다. 어떻게 구현하면 좋을지 고민이 많이 필요할 수도 있습니다. 이미 구현된 부분들을 잘 살피고 어떤 식으로 구현해야 할 지 생각해서 채워주세요. #include #include typedef struct queue { int front; int rear; int size; int capacity; int* array; } Queue; Queue* createQue..
www.notion.so/2-bd4c4037074c42da83e73d016632c3f6 ✔︎ 미션 2 1. 미션 제목 www.notion.so 1. 미션 제목 연결리스트로 Stack 만들기 2. 지시문 EDWITH CS50 강좌에서 배운 Stack을 보조미션 1에서 배열을 이용해서 구현해 보셨는데요, 이번에는 연결리스트를 이용해서 Stack을 구현하는 과제입니다. 지난 문제와 마찬가지로 아래 표에 함수의 주석 처리된 부분들에 여러분의 코드를 채워 넣어주세요. #include #include typedef struct stackNode { int data; struct stackNode* next; } StackNode; StackNode* createStackNode(int data) { StackNod..
www.notion.so/1-6348c7f452b24565adbe1ce197c65f5e ✔︎ 미션 1 1. 미션 제목 www.notion.so 1. 미션 제목 배열로 Stack 만들기 2. 지시문 EDWITH CS50 강좌에서 배운 Stack을 C 언어로 구현해 보겠습니다. Stack을 구현하는 방법은 정말 많은데요, 이번 문제에서는 Stack을 배열을 이용해서 구현하는 방법에 대해서 알아보겠습니다. 아래 표에 함수의 주석 처리된 부분들에 여러분의 코드를 채워 넣어주세요. #include #include typedef struct stack{ int top; int capacity; int* array; } Stack; Stack* createStack(int capacity) { Stack* stack..
www.notion.so/4ca8894af0be47988240c043eee8bd4c 💡 샘플미션 1. 미션 제목 www.notion.so 1. 미션 제목 2개의 리스트 합치기 2. 지시문 EDWITH CS50 강좌를 모두 수강한 여러분은 유능한 개발자로 회사에 소문이나 핵심 부서로 배치되었습니다. 핵심부서의 주요 임무 중 하나는 다른 부서의 업무를 종합하는 일입니다. 부서 배치 첫 업무로 A부서에서 수행한 업무와 B부서에서 수행한 업무를 합치는 일을 맡게 되었습니다. A부서에서는 미국 지사들의 매출이 오름차순으로 정렬된 자료를 연결리스트 형태로 보내왔고, B부서에서는 한국 지사들의 매출이 오름차순으로 정렬된 자료를 연결리스트 형태로 보내왔습니다. 여러분의 업무는 이제 두 연결리스트를 하나의 연결리스트로 ..
www.notion.so/3-37cf1ef82d3a4ac7ace7f745dc88b32b ✔︎ 미션 3. 1. 미션 제목 www.notion.so 1. 미션 제목 정렬을 해보자 2. 지시문 여러분은 데이터를 정리하기 위해서 엑셀을 많이 사용하실 것입니다. 게다가, 데이터들을 보기 좋게 하기 위해서 정렬 기능을 많이 사용하실 텐데 간단한 버블 정렬 코드를 배열이 아닌 포인터를 활용하여 완성해 보세요. 예) main code는 다음과 같습니다. sort function 을 완성해보세요 int main() { int n = 7; int arr[7] = { 0, 25, 10, 17, 6, 12, 9 }; sort(n, arr); return 0; } 출력값 : 0, 6, 9, 10, 12, 17, 25 3. 핵심..
www.notion.so/2-7f4d4fc32a394624a1fc9585e408bf2f ✔︎ 미션 2. 1. 미션 제목 www.notion.so 1. 미션 제목 메모리와 OverFlow 개념 정리 2. 지시문 수업에서 언급되었던 Heap overflow와 stack overflow에 대해서 어떤 경우에 발생이 되는지 서술해주세요. Strcpy와 strncpy의 차이점을 서술해보세요. (어떤 것을 추천하는지와 그 이유에 대해서 서술해주세요.) 3. 핵심 개념 #문자열복사 #string.h 나의 풀이 1) Heap overflow와 Stack overflow 컴퓨터 메모리는 크게 4가지 영 역으로 나뉘어진다. 코드 영역 : 프로그램이 올라가는 영역 (=텍스트 영역). CPU는 이 영역에 저장된 명령어를 하나..
www.notion.so/1-b8430429b95b49ac9a94f51b9c9b134f ✔︎ 미션 1. 1. 미션 제목 www.notion.so 1. 미션 제목 포인터를 이중으로 활용해보자 2. 지시문 유사 문제에서 배열을 포인터로 접근하는 방법을 학습하였습니다. 2차원 배열(5x5)을 선언한 후 포인터로 접근하여서 순서대로 출력하는 코드를 작성해보세요 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}}; 배열의 값을 접근할 경우 arr[m][n] 또는 포인터로 접근할 수 있습니다. 2차 배열의 경우 이중 포인터로..