가까운 값 모두 구하기

    가까운 값(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을 모두 구해서 리스트에 넣은 후 출력하는 예제를 만들어 보았습니다.

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