본문 바로가기
Algorithm(CodeTree, Python)/완전탐색3

[코드트리 기준을 새로 설정하여 완전탐색] 숫자들의 최대 차 Python

by kurooru 2023. 1. 4.
# n, k 입력
n, k = map(int, input().split())
# num_list
num_list = list()
# num_list 입력
for _ in range(n):
    num_list.append(int(input()))

# 함수들
# is_possible(pick_num)
def is_possible(pick_num):
    
    # 정렬된 num_list를 돌면서
    for i in range(n - pick_num + 1):
        # curr_min, curr_max
        curr_min, curr_max = num_list[i], num_list[i + pick_num -1]
        # 한번이라도 차가 k이하면
        if curr_max - curr_min <= k:
            # 성공
            return True
    
    # 다 돌았는데 k 이하가 안나오면 실패
    return False

# 설계
# num_list 정렬
num_list.sort()

# max_pick
max_pick = 1

# 완전 탐색 시작 -> 뽑을 숫자의 개수를 기준으로
for i in range(2, n+1):
    # 현재 뽑은 갯수가 가능하면,
    if is_possible(i):
        # max_pick update
        max_pick = i

# 출력
print(max_pick)