문제 풀이/프로그래머스
프로그래머스 lv0 가까운 수
춘핑이
2023. 2. 27. 17:50
문제
정수 배열 array와 정수 n이 매개변수로 주어질 때,
array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
코드
public static int solution(int[] array, int n) {
int answer = 0;
// n - x 절댓값이 가장 작은 수
int close = Math.abs(n - array[0]);
Arrays.sort(array);
for (int i = 0; i < array.length; i++) {
if (Math.abs(n - array[array.length - i - 1]) <= close) {
close = Math.abs(n - array[array.length - i - 1]);
answer = array[array.length - i - 1];
}
}
return answer;
}풀이
정수 n과 가깝다는 것은 n - 값을 뺏을때 절댓값이 가장 작은 수를 의미한다.
문제는 주어진수가 10일때 11과 9모두 같은 값을 가지는데 이 중에서 작은 수를 출력하라는 제약조건이 있었다.
그래서 나는 배열을 오름차순으로 만들고 뒤에서부터 값을 비교했다.
둘 중 작은 값이 나중에 나오도록 하기 위해서이다.