ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3주차 미션 - 문제 3
    개인 공부/코딩뉴비 챌린지 2020. 7. 30. 08:44

    큐를 구현해보는 문제였는데...

    네?????? 큐요?????

    자료구조에 나오는 개념인데..

    ㅑ 자료구조는

    ㅑ 6주차 아닌가요...

     

    이번 주차에 출제해주신 멘토(?)님께서 눈이 굉장히 높으신 건지...

    너무 미리 알고 있어야 할 개념들이 많은 것 같습니다만....

     

    일단은 급하게 큐 개념을 검색해서 코드를 작성하긴 했는데...

     

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #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");
        else
            printf("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를 하나씩 증가시키다보면 프로그램이 큐가 꽉 찼다고 인식해버리는 문제가 내 코드에도 역시 존재한다. 이를 '원형 큐'를 통해서 해결할 수 있는데 내 머리가 원형 큐까지 이해할 준비를 아직 하지 못했다...😥 챌린지에서 자료구조를 배우면 그때 다시 한 번 검토해봐야겠다. 우리 팀 리더님께서 잘 설명해주시긴 했는데... 강의에서 또 제대로 배워봐야 할 것 같다. (원래 기초부터 제대로 공부해야 직성이 풀리는 편)

     

    우수 과제 선정되신 조 보니까 정말 열심히 하시던데... 나도 열심히 따라가야지.

    '개인 공부 > 코딩뉴비 챌린지' 카테고리의 다른 글

    6주차 미션 - 1  (0) 2020.08.19
    4주차 미션 2  (0) 2020.08.04
    4주차 미션 1  (0) 2020.08.04
    3주차 샘플 문제  (0) 2020.07.28

    댓글

Designed by Tistory.