[JAVA] 프로그래머스 : 가까운 수

조예빈·2024년 8월 28일
0

Coding Test

목록 보기
124/146
post-custom-banner

https://school.programmers.co.kr/learn/courses/30/lessons/120890

최소값을 update하는 로직을 추가해 주지 않아서 시간이 조금 걸렸었다. 초반에 최솟값과 절대값을 구했기 때문에, 조건에 부합하는 경우 이 두 개의 변수를 새로 update를 해 주어야 한다.

import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
        Arrays.sort(array); //정렬
        int answer = array[0]; //맨 처음 요소
        int min = Math.abs(array[0]-n); //절댓값
        
        for(int i=1; i<array.length; i++){
            int next = Math.abs(array[i]-n);
            if(min>next){ //다음 값보다 절댓값이 더 작으면
                min = next; //최소값 update
                answer = array[i]; 
            }else if(min == next){
                if(answer > array[i]){
                    answer = array[i];
                }
            }
        }
        return answer;
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글