본문 바로가기
Dev/Java

6. 근삿값 알고리즘 (Near Algorithm)

by vellahw 2022. 8. 8.
//[?] 원본 데이터 중에서 대상 데이터와 가장 가까운 값 구하기

/**
 * 근삿값 알고리즘(Near Algorithm): 차잇값의 절댓값의 최솟값
 */

public class NearAlgorithm2 {
    // 절댓값 구하기 로컬 함수
    public static int Abs(int number) {
        return (number < 0) ? -number : number;
    }
    public static void main(String[] args) {
        int min = Integer.MAX_VALUE;  // (초기화 영역) 차잇값의 절댓값의 최솟값이 닮길 그릇
    
        int[] numbers = { 10, 20, 30, 27, 17 };
        int target = 25; // target 설정. 타겟과 가까운 값 구하기 
        int near = 0; // 가까운 값
        
        for (int i = 0; i < numbers.length; i++) {
            int abs = Abs(numbers[i] - target); // 차잇값의 절댓값 담김
            if (abs < min) {
                min = abs; // MIN
                near = numbers[i]; // NEAR: 차잇값의 절댓값의 최솟값일 때의 값
            }
        }

        System.out.println(target + "와/과 가장 가까운 값 : " + near + "(차이: " + min + ")");
    }
}

출력: 25와/과 가장 가까운 값 : 27(차이: 2)

댓글