1주차 연습문제

빈칸 채우기로 익히는
C++ 스택과 버블 정렬

각 빈칸에 들어갈 코드를 단답형으로 입력한 뒤 채점 버튼을 눌러보세요. 실제 코딩테스트 문제는 아래 예제보다 어렵게 나올 수 있습니다.

문제 1 C++ 클래스로 배열 기반 스택 구현
문제 2 오름차순 버블 정렬 구현

문제 1. 클래스 스택 구현

동적 배열을 사용하는 스택 클래스입니다. 생성자, 자동 확장, 소멸자의 핵심 부분을 채워보세요.

힌트: 공간이 꽉 차면 기본 크기의 1.5배만큼 더 큰 메모리를 새로 확보하고, 기존 값을 복사한 뒤 이전 메모리를 해제합니다.
#include <iostream>
#include <cstdlib>
using namespace std;

class Stack {
private:
    int* data;
    int topIndex;
    int capacity;

public:
    Stack(int size = 10) {
        capacity = size;
        topIndex = ;
        data = (int*)malloc(sizeof(int) * );
    }

    ~Stack() {
        
    }

    void push(int value) {
        if (topIndex + 1 == capacity) {
            int newCapacity = capacity + capacity / 2;
            int* newData = (int*)malloc(sizeof(int) * newCapacity);

            for (int i = 0; i < capacity; i++) {
                newData[i] = data[i];
            }

            
            data = newData;
            capacity = ;
        }

        data[] = value;
    }

    int pop() {
        if (topIndex == -1) {
            cout << "Stack Underflow" << '\n';
            return -1;
        }
        return data[];
    }
};

문제 2. 버블 정렬 구현

오름차순으로 정렬되도록 반복문 조건과 swap 부분을 채워보세요.

힌트: 큰 값이 뒤로 밀려나므로, 안쪽 반복문은 아직 정렬되지 않은 범위까지만 보면 됩니다.
#include <iostream>
using namespace std;

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < ; j++) {
            if (arr[j] > arr[]) {
                int temp = arr[j];
                arr[j] = arr[];
                arr[j + 1] = temp;
            }
        }
    }
}