본문 바로가기

전체 글

(432)
[부스트 코딩 뉴비 챌린지 2020] week5_샘플미션 ✔︎ 샘플미션. 1. 미션 제목 포인터를 사용하여 배열 데이터를 접근해보자 2. 지시문 강의에서 배열을 포인터로 접근하는 방법을 학습하였습니다. 배열(5)을 선언한 후 포인터로 접근하여서 순서대로 출력하는 코드를 작성해보세요 arr[5] = {1, 2, 3, 4, 5}배열의 값을 접근할 경우 arr[m] 또는 포인터로 접근할 수 있습니다. For문을 활용하시면 쉽게 접근할 수 있습니다. 예) 출력값: 1 2 3 4 5 3. 핵심 개념 #루프 🔔 답안 #include int main() { int arr[5] = {1, 2, 3, 4, 5}; int n = sizeof(arr)/sizeof(int); // sizeof(arr) 로 총 arr 배열이 차지하는 공간의 크기를 측정 후 // 각 요소(여기서는 i..
[부스트 코딩 뉴비 챌린지 2020] week5_미션03 ✔︎ 미션 3. 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. 핵심 개념 #sort #bubblesort #버블정렬 #include void sort(int n, int arr[]); int ma..
[부스트 코딩 뉴비 챌린지 2020] week5_미션01 ✔︎ 미션 1. 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차 배열의 경우 이중 포인터로 접근할 수 있으니 활용해보시길 바랍니다. 이중 For문을 활용하시면 쉽게 접근할 수 있습니다. 예) 출력값: 26 27 2..
[부스트 코딩 뉴비 챌린지 2020] week6_미션03_2 : 연결 리스트로 Queue 만들기 // 연결 리스트로 Queue 만들기 #include #include //malloc() typedef struct node{ struct node* next; int data; }NODE; NODE* createNode (int data){ NODE* node = (NODE*)malloc(sizeof(NODE)); if(!node){ printf("failed to create node\n"); exit(1); } node->next = NULL; node->data = data; return node; } int isEmpty(NODE* root){ return !(root->next); } void push(NODE* root, int data){ NODE *node = createNode(data..
[부스트 코딩 뉴비 챌린지 2020] week6_Q&A : 이중 포인터 Q. 다른 미션과 달리 미션2에서 StackNode* 가 아닌 StackNode**를 사용해야 하는 이유가 무엇인가요? 자료형**의 명칭, 의미와 사용법, 그리고 자료형*를 사용했을 때보다 이를 사용했을 때의 장점이 궁금합니다. A. **는 이중포인터라고 부르시면 됩니다. int** ptr이라고 되어있으면, ptr은 int*를 가리키는 포인터입니다. int*는 int를 가리키는 포인터이죠. 미션2에서 StackNode**를 사용한 이유는, push, pop, peek 함수에서 StackNode*를 input으로 받아와서는 정상적인 동작을 하지 않기 때문입니다. 미션2의 함수를 현재 얼마나 구현하셨는지 알 수 없어 더 이상 자세한 설명을 드리기는 어려울 것 같지만, push와 pop 함수 내에서는 root..
[부스트 코딩 뉴비 챌린지 2020] week6_미션04 : 연결 리스트 뒤에서 k번째 노드 찾기 ✔︎ 미션 4. 1. 미션 제목 뒤에서 k번째 노드는 무엇일까요? 2. 지시문 이번에는 연결리스트의 응용 문제를 풀어보겠습니다. 연결리스트가 하나 주어졌을 때 해당 연결 리스트의 뒤에서 k번째 노드의 값은 무엇일지 알아낼 수 있을까요? 예를 들어, 9->8->4->14->5 라는 리스트가 주어질 때 뒤에서 2번째 노드를 출력하라고 하면 14가 출력이 되어야 합니다. 연결리스트가 이미 만들어져 있다고 가정하고, 아래와 같은 함수가 주어졌을 때 뒤에서 k번째 노드를 출력할 수 있을까요? typedef struct node{ int data; struct node* next; } Node; void append(Node* head, int data) { // 이 부분을 작성해 주세요! } int getLast..
[부스트 코딩 뉴비 챌린지 2020] week6_미션03 : 배열로 Queue 만들기 ✔︎ 미션 3. 1. 미션 제목 배열로 Queue 만들어보기! 2. 지시문 이번 과제에서는 Queue를 구현해 봅시다! Stack 과 Queue의 구현은 얼핏 보면 비슷해 보이지만 막상 구현해 보면 많은 부분이 다르답니다. 어떻게 구현하면 좋을지 고민이 많이 필요할 수도 있습니다. 이미 구현된 부분들을 잘 살피고 어떤 식으로 구현해야 할 지 생각해서 채워주세요. #include #include typedef struct queue { int front; int rear; int size; int capacity; int* array; } Queue; Queue* createQueue(int capacity) { Queue* queue = (Queue *)malloc(sizeof(Queue)); queue..
[부스트 코딩 뉴비 챌린지 2020] week6_미션02 : 연결 리스트로 Stack 만들기 ✔︎ 미션 2. 1. 미션 제목 연결리스트로 Stack 만들기 2. 지시문 EDWITH CS50 강좌에서 배운 Stack을 보조미션 1에서 배열을 이용해서 구현해 보셨는데요, 이번에는 연결리스트를 이용해서 Stack을 구현하는 과제입니다. 지난 문제와 마찬가지로 아래 표에 함수의 주석 처리된 부분들에 여러분의 코드를 채워 넣어주세요. #include #include typedef struct stackNode { int data; struct stackNode* next; } StackNode; StackNode* createStackNode(int data) { StackNode* node = (StackNode*)malloc(sizeof(StackNode)); node->data = data; nod..

반응형