더북(TheBook)

가까운 값 모두 구하기

가까운 값(closest)이 여러 개 있을 때 이를 모두 구할 수 있습니다. 다음 코드를 살펴보세요.

가까운 값 모두 구하기: NearAll.cs

using System;
using System.Collections.Generic;

class NearAll
{
    static void Main()
    {
        int[] data = { 10, 20, 23, 27, 17 };
        int target = 25;                   //25와 가까운 값들은 23, 27
        List<int> nears = new List<int>(); //가까운 값들...
        int min = Int32.MaxValue;

    //① MIN 알고리즘: 차이의 최솟값 구하기
        for (int i = 0; i < data.Length; i++)
        {
            if (Math.Abs(data[i] - target) < min)
            {
                min = Math.Abs(data[i] - target);
            }
        }

        Console.WriteLine($"차이의 최솟값 : {min}");

        //② NEAR 알고리즘: 차이의 최솟값이 min인 값들을 다시 한 번 비교
        for (int i = 0; i < data.Length; i++)
        {
            if (Math.Abs(data[i] - target) == min)
            {
                nears.Add(data[i]);        //가까운 값을 모두 저장
            }
        }

        //가까운 값 출력
        foreach (var n in nears)
        {
            Console.WriteLine(n);
        }
    }
}

실행 결과

차이의 최솟값 : 2
23
27

25와 가까운 데이터인 23과 27을 모두 구해서 리스트에 넣은 후 출력하는 예제를 만들어 보았습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.