카테고리 없음

[SWEA] 20728. 공평한 분배 2 (Python)

가은(JANE) 2024. 11. 21. 00:04

#Problem

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

#Think

  • 나열했을 때 제일 큰 수에서 제일 작은 수 빼는 게 아니다
  • 서로의 차가 제일 작아야된다.
    • 무슨 말이냐면 100 10 10 1로 정렬했을 때 100 10 10으로 출력하는 지 알았는데 100이랑 10차이가 겁나게 크니까 안 된다. 100이랑 10의 차이, 10이랑 1의 차이를 비교해서 더 작은 거로 출력해야 한다

 

#Code

T = int(input())
for test_case in range(1, T + 1):
    n, k = map(int, input().split())
    number = list(map(int, input().split()))
    cnt = 0



    while number[0]*n != sum(number):
        cnt += 1
        number.append(number[k - 1])
        number.remove(number[0])
        if cnt >= 5000:
            cnt = -1
            break

    print(f"#{test_case} {cnt}")