728x90
코드 힌트
- 가까운 수를 찾는 문제이기 때문에 abs(절대값)로 판단하기:
- 예를 들어, |-1| = 1, |1| = 1입니다.
- 가까운 숫자가 여러 개 있을 때 낮은 숫자를 반환하기:
- 예를 들어, n = 20일 때 19와 21이 있으면 19를 반환해야 합니다.
- 배열을 오름차순으로 정렬하기:
- 힌트 2번을 효율적으로 해결하기 위해서 배열을 정렬합니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
// 배열을 오름차순으로 정렬
Arrays.sort(array);
// 정답을 저장할 변수, 초기값으로 첫 번째 요소를 저장
int result = array[0];
// 배열 요소와 n의 차이를 저장하는 변수 (절대값으로 저장)
int diff = Math.abs(array[0] - n); // 0번째 요소의 차이로 초기화
// 0번째 요소는 이미 변수로 저장했기 때문에 1부터 시작
for (int i = 1; i < array.length; i++) {
// 현재 요소와 n의 차이 계산
int currentDiff = Math.abs(array[i] - n);
// 현재 요소가 n에 더 가까운 경우 diff와 result를 갱신
if (currentDiff < diff) {
diff = currentDiff;
result = array[i];
}
}
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 겹치는 선분의 길이 (0) | 2024.07.19 |
---|---|
[프로그래머스] k의 개수 (0) | 2024.07.19 |
[프로그래머스] 2의 영역 (0) | 2024.07.18 |
[프로그래머스] 약수 구하기 (0) | 2024.07.18 |
[프로그래머스] 수열과 구간 쿼리 4 (0) | 2024.07.17 |