C# 프로그래밍 기초 실습 전자책

C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.


퀴즈 질문


예상답변/설명

아래 예제는 배열을 내부적으로 사용했을 때, 인덱서를 구현해 본 예이다. 배열은 고정된 크기를 가지기 때문에, 지정된 범위 이외의 값이 들어오면 Exception으로 처리하고 있다.

public class MyClass
{
    private const int MAX = 100;
    private object[] table = new object[MAX];

    public object this[int i]
    {
        get
        {
            if (i < 0 || i >= MAX)
            {
                throw new IndexOutOfRangeException();
            }
            return this.table[i];
        }
        set
        {
            if (i < 0 || i >= MAX)
            {
                throw new IndexOutOfRangeException();
            }
            this.table[i] = value;
        }
    }
}

[가산점] 인덱서의 파라미터로 배열인덱스를 나타내는 숫자가 아니라 문자열 키(string key)를 받아들인다면, 어떤 자료 구조가 적합합니까?

[A] Hash Table (Dictionary)