-
728x90
문제 설명
정수 배열
array
와 정수n
이 매개변수로 주어질 때,array
에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.제한 사항
- 1 ≤
array
의 길이 ≤ 100 - 1 ≤
array
의 원소 ≤ 100 - 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
답안
import java.util.*; class Solution { public int solution(int[] array, int n) { int answer = 0; Arrays.sort(array); for(int i = 1 ; i < array.length ; i++){ if(Math.abs(n-array[0]) > Math.abs(n-array[i])){ array[0] = array[i]; } } answer = array[0]; return answer; } }
Arrays.sort()
를 이용해서 입력받은 배열을 정렬한뒤 for문을 돌면서 0번째 배열의 차이와 i번째 배열의 차이를 구해 절대값 비교한 뒤 0번째 배열 차이가 크다면 0번째 자리에 i번째 원소를 넣어준다.이렇게 순차적으로 비교를 하면서 결국 차이 값이 제일 적은 원소가 0번째에 저장되며 0번째 원소를 리턴한다.
참고
Arrays.sort(배열)
: 입력한 배열의 원소를 순차적으로 정렬Math.abs(숫자)
: 인자값에 대한 절대값을 반환하는 함수 (int, float, long,double 등)
728x90'algorithm' 카테고리의 다른 글
자바 알고리즘 - 중복된 문자 제거 (0) 2023.09.05 자바 알고리즘 - 삼각형의 완성조건(1) (0) 2023.09.05 자바 알고리즘 - 369게임 (0) 2023.09.04 자바 알고리즘 - 암호 해독 (0) 2023.09.04 자바 알고리즘 - 대문자와 소문자 (0) 2023.09.04 - 1 ≤