1. 문제 출처
2. 문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
3. 제한사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
4. 입출력 예
5. 풀이
class Solution {
fun solution(array: IntArray, n: Int): Int {
array.sort() //array 오름차순 정렬
var answer: Int = 0
var compare: Int = Math.abs(array[array.size-1]-n) //array와 n 값의 차
for(i in array.size-1 downTo 0){ //array의 큰 수부터 작은 수까지 반복문을 돌린다.
if(Math.abs(array[i]-n)<=compare){
answer=array[i]
compare=Math.abs(array[i]-n)
}
}
return answer
}
}
가장 가까운 수가 여러 개일 경우 더 작은 수를 return 하기 때문에 array를 오름차순으로 정렬하고 array의 맨 마지막 요소부터 시작해서 작은 수까지 반복문을 돌린다. 그리고 compare 변수(비교값)보다 작은 것이 있으면 answer에 저장하고 compare을 갱신한다.