작은 걸음 III — 프로그램으로 생각하기

값이 있는 위치 기억하기

값이 있는 위치 기억하기

이번에 배울 것

값 대신 인덱스를 기억하면 가장 작은 값이 무엇인지와 어디 있는지를 함께 알 수 있습니다.

실행해 보기

예제 · example2.cpp
void small_main()
{
    Array<int> numbers = {7, 2, 9, 1, 5};
    int smallest_index = 0;

    for (int i = 1; i < numbers.length(); i = i + 1)
        if (numbers[i] < numbers[smallest_index])
            smallest_index = i;

    print("Smallest: ", numbers[smallest_index]);
    print("Index: ", smallest_index);
}

smallest_index는 가장 작은 원소의 위치입니다. numbers[smallest_index]로 그 값을 읽습니다. 예제의 최솟값은 1, 위치는 3입니다.

값과 위치를 혼동하지 않게 변수 이름에 Index를 붙였습니다. 같은 최솟값이 여러 개면 현재의 < 비교는 먼저 만난 위치를 남깁니다.

Exercise — 가장 큰 값의 위치

가장 큰 값의 index를 찾아 값과 index를 함께 출력하세요.

연습 문제 코드 · exercise2_starter.cpp
void small_main()
{
    Array<int> numbers = {4, 11, 6, 20, 9};

    // find the index of the largest value.
}

Hint

largest_index를 0으로 시작하고 numbers[i] > numbers[largest_index]를 비교하세요.

풀이 보기
void small_main()
{
    Array<int> numbers = {4, 11, 6, 20, 9};
    int largest_index = 0;

    for (int i = 1; i < numbers.length(); i = i + 1)
        if (numbers[i] > numbers[largest_index])
            largest_index = i;

    print("Value: ", numbers[largest_index]);
    print("Index: ", largest_index);
}
← 이전 레슨다음 레슨 →