근삿값 알고리즘(Near Algorithm)
//[?] 원본 데이터 중에서 대상 데이터와 가장 가까운 값
using System;
using System.Linq;
/// <summary>
/// 근삿값 알고리즘(Near Algorithm): 차잇값의 절댓값의 최솟값
/// </summary>
class NearAlgorithm
{
//[0] 절댓값 구하기 로컬 함수: Math.Abs() 함수의 동일한 기능을 구현해 봄
static int Abs(int number)
{
if (number < 0)
{
return -number;
}
else
{
return number;
}
}
static void Main()
{
//[1] Initialize
int min = int.MaxValue; // 차잇값의 절댓값의 최솟값이 담길 그릇
//[2] Input
int[] numbers = { 10, 20, 30, 27, 17 };
int target = 25; // target과 가까운 값
int near = 0; // 가까운 값: 27
//[3] Process: NEAR
for (int i = 0; i < numbers.Length; i++)
{
int abs = Abs(numbers[i] - target); // 차잇값의 절댓값
if (abs < min)
{
min = abs; // MIN: 최솟값 알고리즘
near = numbers[i]; // NEAR: 차잇값의 절댓값의 최솟값일 때의 값
}
}
//[4] Output
Console.WriteLine($"{target}와 가장 가까운 값: {near}(차이: {min})");
}
}
'인터넷강의 > 쉽게 배우는 C# 알고리즘 프로그램' 카테고리의 다른 글
16차시. 최댓값과 최솟값을 제외한 평균값 구하기 (0) | 2020.06.07 |
---|---|
15차시. 최솟값 알고리즘(Min Algorithm) (0) | 2020.06.03 |
14차시. 최댓값 알고리즘(Max Algorithm) (0) | 2020.06.03 |
13차시. 이차원 배열을 사용하여 점수에 대한 합계와 평균을 구하기 (0) | 2020.06.02 |
12차시. 평균 이상 학생수 구하기 (0) | 2020.06.02 |