500error
[Cos Pro 1급, Python] 6차 3번 : 큰수와 작은수의 차이 본문
반응형
문제
자연수가 들어있는 배열에서 숫자 K개를 선택하려 합니다. 이때, 선택한 숫자 중 가장 큰 수와 가장 작은 수의 차이가 최소가 되도록 해야합니다.
예를 들어 배열에 들어있는 숫자가 [9, 11, 9, 6, 4, 19] 이고, K = 4 라면
- 숫자 4개를 [9, 11, 9, 6]로 뽑으면 (가장 큰 수 - 가장 작은 수) = (11 - 6) = 5가 됩니다.
- [9, 9, 6, 4] 와 같이 숫자를 뽑아도 (가장 큰 수 - 가장 작은 수) = (9 - 4) = 5가 됩니다.
그러나 가장 큰 수와 가장 작은 수의 차이가 5보다 작아지도록 숫자 4개를 선택하는 방법은 없습니다.
자연수가 들어있는 배열 arr, arr의 길이 arr_len, 선택해야 하는 숫자 개수 K가 매개변수로 주어질 때, 선택한 숫자중 가장 큰 수와 가장 작은 수의 차이가 최소가 되록 arr에서 숫자 K개를 선택했을 때, 그때의 가장 큰 수와 가장 작은 수의 차이를 return 하도록 solution 함수를 완성해주세요.
코드
from itertools import combinations
def solution(arr, K):
answer = 0
num = 10001
com = list(combinations(arr, K))
for i in com :
com_i = list(set(i))
min_i = min(i)
max_i = max(i)
result = max_i - min_i
if result < num :
num = result
answer = num
return answer
arr = [9, 11, 9, 6, 4, 19]
K = 4
ret = solution(arr, K)
print("solution 함수의 반환 값은", ret, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 6차 5번 : 코인을 많이 획득하세요 (0) | 2024.03.03 |
---|---|
[Cos Pro 1급, Python] 6차 4번 : 카드 섞기 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 6차 2번 : 단어를 순서대로 적으세요 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 6차 1번 : 꽃피는 봄이 언제 오나요 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 5차 10번 : 계산기 만들기 (0) | 2024.03.02 |
Comments