[Java] 숫자 뽑기 - 프로그래머스 / COS Pro 1급 Java 모의고사코딩테스트/프로그래머스2023. 4. 18. 06:56
Table of Contents
728x90
728x90
https://school.programmers.co.kr/learn/courses/11132/lessons/71156
풀이
문제에서, K만큼을 뽑아내어 가장 큰 수 - 가장 작은 수의 최소를 구하라고 했다.
처음에는 재귀를 통해 완전탐색을 하려하다가, 정렬을 통해 K만큼을 뽑아내면 되지 않나 생각했더니 엄청 간단하게 풀렸다.
1. 오름차순 정렬 후 answer 초기화 (배열의 가장 큰 수인 arr의 마지막값)
2. K를 뽑을 수 있는 경우의 수인 arr의길이-K만큼만 반복을 돌린다.
3. 돌리는 과정에서, 배열의 맨 앞, 맨 뒤의 수를 뺀 값을 비교하여 answer에 담는다(최소값이니 Math.min() 활용)
public int solution(int[] arr, int K) {
Arrays.sort(arr);
int answer = arr[arr.length-1];
for(int i=0; i<=arr.length-K; i++) {
answer = Math.min(answer, arr[K-1+i]-arr[i]);
}
return answer;
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!