가까운 수
문제 #
정수 배열 array
와 정수 n
이 매개변수로 주어질 때, array
에 들어있는 정수 중 n
과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
- 제한사항
- 1 ≤
array
의 길이 ≤ 100 - 1 ≤
array
의 원소 ≤ 100 - 1 ≤
n
≤ 100 - 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
- 1 ≤
- 입출력 예
array n result [3, 10, 28] 20 28 [10, 11, 12] 13 12
나의 풀이 #
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int min = 101;
Arrays.sort(array);
for(int i = 0; i<array.length; i++) {
if(min > Math.abs(array[i]-n)) {
min = Math.abs(array[i]-n);
answer = array[i];
}
}
return answer;
}
}
- 배열의 값에서 n을 뺀 절댓값이 더 작은 경우를 구한다.
- 최소차이값은 100이상이 될 수 없으므로 초기값을 101로 설정한다.
- 배열
array
의 순서가 섞여있을 경우를 대비 오름차순으로 정렬한다.
다른 사람의 풀이 #
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
Arrays.sort(array);
for(int i = 1 ; i < array.length ; i++){
if(Math.abs(n-array[0]) > Math.abs(n-array[i])){
array[0] = array[i];
}
}
answer = array[0];
return answer;
}
}
- 가장 가까운 수를
array[0]
에 저장하며 확인하였다. - 차이값을 따로 저장하지 않았다.
관련개념 학습 #
- 관련 개념을 찾아서 공부한 내용을 적는다.
ctrl + p
로 내가 필기한 내용 중에서 관련내용이 있는지 찾아서 그 페이지의 링크를 복사하여 붙혀넣는다.- 필기 페이지에도 이 문제의 링크를 복사하여 “관련 문제"라고 써놓고 붙혀넣는다.