💬 문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
🚫 제한 사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
int answer = Integer.MAX_VALUE;
int minDistance = Integer.MAX_VALUE;
for (int i = 0; i < array.length; i++) {
int distance = Math.abs(array[i] - n);
if (minDistance > distance) {
minDistance = distance;
answer = array[i];
} else if (minDistance == distance) {
if (answer > array[i]) answer = array[i];
}
}
return answer;
}
}
✏ 해결방법 & 배운점
반복문을 이용하여 `array` 배열을 순회하며 `Math.abs(array[i] - n)` 메서드로 각 배열 요소와 n의 거리의 절대값을 구합니다. 조건문을 사용하여 현재까지의 최소 거리와 비교하고, 최소 거리보다 작은 경우 해당 배열 요소를 `answer`에 저장합니다. 만약 최소 거리와 같은 경우, 더 작은 배열 요소를 `answer`에 저장하는 방식으로 문제를 해결하였습니다.
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
[프로그래머스] LV.0 진료 순서 정하기 - 자바 [69/100] (0) | 2024.06.26 |
---|---|
[프로그래머스] LV.0 한 번만 등장한 문자 - 자바 [68/100] (0) | 2024.06.26 |
[프로그래머스] LV.0 K의 개수 - 자바 [66/100] (0) | 2024.06.26 |
[프로그래머스] LV.0 A로 B 만들기 - 자바 [65/100] (0) | 2024.06.26 |
[프로그래머스] LV.0 숨어있는 숫자의 덧셈 (2) - 자바 [64/100] (0) | 2024.06.26 |