-
3주차 미션 - 문제 3개인 공부/코딩뉴비 챌린지 2020. 7. 30. 08:44
큐를 구현해보는 문제였는데...
네?????? 큐요?????
자료구조에 나오는 개념인데..
ㅑ 자료구조는
ㅑ 6주차 아닌가요...
이번 주차에 출제해주신 멘토(?)님께서 눈이 굉장히 높으신 건지...
너무 미리 알고 있어야 할 개념들이 많은 것 같습니다만....
일단은 급하게 큐 개념을 검색해서 코드를 작성하긴 했는데...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#include <stdio.h>int size = 10;int queue[10];int front = 0, rear = -1;void print();void add();void pop();void display();int main(){while(1){int n;print();scanf("%d", &n);switch(n){case 1 :add();break;case 2 :pop();break;case 3 :display();break;case 4 :return 0;break;default :printf("잘못된 선택입니다.\n\n");break;}}}void print(){printf("무엇을 하시겠습니까?\n\n");printf("(1) queue에 값 삽입하기\n");printf("(2) front 확인하기\n");printf("(3) queue 목록 보기\n");printf("(4) 그만하기\n");}void add(){int n;if (rear > 9)printf("Queue가 꽉 찼습니다.\n\n");else {rear++;printf("값을 입력하세요 : ");scanf("%d", &n);queue[rear] = n;}}void pop(){if (rear < front)printf("Queue가 비었습니다.\n\n");else if (front > 9)printf("front가 더 이상 없습니다.\n\n");elseprintf("front : %d\n\n", queue[front]);front++;}void display(){int i;for (i = front; i <= rear; i++){printf("%d ", queue[i]);}printf("\n\n");}cs 다른 블로그에서도 말하는 문제점인, pop() 함수를 통해서 front를 하나씩 증가시키다보면 프로그램이 큐가 꽉 찼다고 인식해버리는 문제가 내 코드에도 역시 존재한다. 이를 '원형 큐'를 통해서 해결할 수 있는데 내 머리가 원형 큐까지 이해할 준비를 아직 하지 못했다...😥 챌린지에서 자료구조를 배우면 그때 다시 한 번 검토해봐야겠다. 우리 팀 리더님께서 잘 설명해주시긴 했는데... 강의에서 또 제대로 배워봐야 할 것 같다. (원래 기초부터 제대로 공부해야 직성이 풀리는 편)
우수 과제 선정되신 조 보니까 정말 열심히 하시던데... 나도 열심히 따라가야지.