-
[Java 자바] 프로그래머스 Lv 0 - 가까운 수Study/Java 2024. 11. 4. 21:54728x90반응형
목차
1. 문제 설명
728x90문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때,
array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.제한사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
2. 입출력 예시
입출력 예시
#1
3, 10, 28 중 20과 가장 가까운 수는 28입니다.
#2
10, 11, 12 중 13과 가장 가까운 수는 12입니다.
3. 문제 풀이
반응형문제 풀이
1. 배열 array를 오름차순 정렬한다.
2. array의 각 원소와 n의 차이를 저장하기 위해 배열 abs를 만들고 길이도 똑같이 정한다.
3. for 문을 통해서 배열 abs의 각 원소에 array의 각 원소에서 n값의 차이를 저장한다.
4. 배열 abs에서 가장 작은 값의 인덱스를 구한다.
5. 구한 인덱스로 array의 원소를 찾아 answer에 넣는다.
6. answer를 반환한다.
import java.util.Arrays; class Solution { public int solution(int[] array, int n) { int answer = 0; Arrays.sort(array); //가장 가까운 수가 여러개일 경우 더 작은 수를 반환하기위해 오름차순 정렬 int[] abs = new int[array.length]; // array 각 원소와 n의 차이를 abs 배열에 넣기 for(int i=0; i<array.length; i++){ abs[i] = Math.abs(array[i] - n); } // abs의 최솟값과 인덱스 찾기 int min = abs[0]; int minIndex = 0; for(int i=0; i<abs.length; i++){ if(abs[i] < min){ min = abs[i]; minIndex = i; } } // 찾은 인덱스로 array에서 값 찾기 answer = array[minIndex]; return answer; } }
메모
Math.abs(값) : 값의 절대값을 구한다.
728x90반응형'Study > Java' 카테고리의 다른 글
[Java 자바] 프로그래머스 Lv 0 - 암호 해독 (0) 2024.11.05 [Java 자바] 프로그래머스 Lv 0 - 369게임 (0) 2024.11.05 [Java 자바] 프로그래머스 Lv 0 - 삼각형의 완성조건 (1) (0) 2024.11.03 [Java 자바] 프로그래머스 Lv 0 - 중복된 문자 제거 (0) 2024.11.02 [Java 자바] 프로그래머스 Lv 0 - 배열 원소의 길이 (0) 2024.11.01