Menu
Coddy logo textTech

포인터와 동적 배열

Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 56번째.

challenge icon

챌린지

쉬움

유연한 숫자 저장 및 처리 시스템을 구축하여 동적 메모리 관리를 시연하는 프로그램을 작성하세요. 이 챌린지는 동적 배열, 메모리 할당, 배열 조작 및 적절한 메모리 해제에 대한 이해도를 테스트합니다.

다음과 같은 입력이 제공됩니다:

  • 저장할 정수의 개수를 나타내는 정수 size
  • 동적 배열에 저장될 size 개의 정수들

프로그램은 다음을 수행해야 합니다:

  1. 입력에서 크기를 읽습니다.
  2. 지정된 크기로 new[]를 사용하여 정수 배열을 동적으로 할당합니다.
  3. 입력에서 정수들을 읽어 동적으로 할당된 배열에 저장합니다.
  4. 배열에 있는 모든 숫자의 합계를 계산합니다.
  5. 배열에서 최댓값을 찾습니다.
  6. 지정된 형식으로 결과를 출력합니다.
  7. delete[]를 사용하여 메모리를 적절하게 해제합니다.

다음과 같은 정확한 출력 형식을 사용하세요:

Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]

동적 메모리 할당을 사용하면 사용자 입력에 따라 런타임에 크기가 결정되는 배열을 생성할 수 있다는 점을 기억하세요. new int[size]를 사용하여 배열을 할당하고, 배열 표기법 array[index]를 사용하여 요소에 접근합니다. 배열 사용을 마친 후에는 반드시 delete[] array를 호출하여 할당된 메모리를 해제하고 메모리 누수를 방지해야 합니다. 배열은 힙(heap)에 존재하며 명시적으로 해제할 때까지 유지됩니다.

직접 해보기

#include <iostream>
using namespace std;

int main() {
    // 배열의 크기를 읽습니다
    int size;
    cin >> size;
    
    // TODO: 여기에 코드를 작성하세요
    // 1. new[]를 사용하여 배열을 동적으로 할당하세요
    // 2. 정수들을 읽어서 배열에 저장하세요
    // 3. 모든 숫자의 합계를 계산하세요
    // 4. 최댓값을 찾으세요
    // 5. delete[]를 사용하여 메모리 할당을 해제하는 것을 잊지 마세요
    
    // 결과 출력 (실제 변수로 대체하세요)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* 합계 변수 */ << endl;
    cout << "Maximum: " << /* 최댓값 변수 */ << endl;
    
    return 0;
}

로직과 흐름의 모든 레슨