코딩테스트 풀이/JAVA
[프로그래머스/Lv.0] 가까운 수
무지맘
2022. 10. 28. 16:17
1. Input
1) 정수 배열 array
2) 정수 n
2. Output
1) array에 들어있는 정수 중 n과 가장 가까운 수
3. Constraint
1) 1 ≤ array의 길이 ≤ 100
2) 1 ≤ array의 원소 ≤ 100
3) 1 ≤ n ≤ 100
4) 가장 가까운 수가 여러 개일 경우 더 작은 수를 반환
4. Example
Input: array={3,10,28,12}, n=20 -> Output: 12
설명: 20과의 차가 가장 작은 것은 28과 12인데, 이 중 더 작은 12를 반환
5. Code
1) 첫 코드(2022/10/28)
int answer=array[0], dif=array[0]-n;
for(int i=1 ; i<array.length ; i++){
int sub = array[i]-n;
// 차의 절댓값이 더 작거나
// 절댓값이 같고 차가 음수인 경우 갱신
if((Math.abs(sub) < Math.abs(dif)) || (Math.abs(sub) == Math.abs(dif) && sub<dif)){
dif = sub; answer = array[i];
}
}
return answer;