코린이의 소소한 공부노트

[프로그래머스/Lv.0] 가까운 수 본문

코딩테스트 풀이/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;