카테고리 없음

내일배움캠프 79일차 TIL 최종 프로젝트 - 튜플(Tuple)

joseph2518 2025. 1. 6. 23:09

20250106 / Unity_6차  18주차 월요일

 

 

튜플(Tuple)여러 개의 값을 하나의 데이터로 묶어서 반환하거나 전달할 때 사용하는 데이터 구조다.

 

C#에서 제공하는 튜플은 값형식(Value Type)으로,

다양한 데이터 타입의 값을 그룹으로 묶어 처리할 수 있다.

 

class MaxHeap<T1, T2> where T2 : IComparable<T2>
{
    private readonly List<(T1 Data, T2 Value)> Heap = new();

    public (T1 Data, T2 Value) Peek()
    {
        if (Count == 0)
            throw new InvalidOperationException("Heap is empty.");
        return heap[0];
    }
    
    public (T1 Data, T2 Value) Remove()
    {
        if (Count == 0)
            throw new InvalidOperationException("Heap is empty.");

        (T1, T2) root = heap[0];
        heap[0] = heap[Count - 1];
        heap.RemoveAt(Count - 1);

        HeapifyDown(0);
        return root;
    }
}

// 사용 예
if (distance < maxHeap.Peek().Value)
{
	freeExplorers.AddLast(maxHeap.Remove().Data); // 이전 최대값 복구
	maxHeap.Add(explorer, distance);
	nodesToRemove.Add(currentNode); // 삭제 예정
}

 

위와 같이 List 요소를 Pair 처럼 만들 수도 있고, 함수의 반환형을 복수로 묶어 내보낼 수 있다.