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