boj19939

    [백준 19939번-파이썬/Python] 박 터뜨리기

    http://acmicpc.net/problem/19939 {코드} def solution(): n, k = map(int, input().split()) sum_minimum = k*(k+1)//2 if sum_minimum > n: return -1 if (n-sum_minimum) % k == 0: return k-1 else: return k print(solution()) {설명} K개의 바구니에 들어있는 공의 개수가 1개 이상이며 전부 달라야 하기 때문에 공의 최솟값은 k(k+1)/2이다. 그림처럼 각 바구니가 순서대로 공의 개수가 결정된다면 전의 바구니보다 1개 더 많을 때가 최소이기 때문이다. 그렇다면 최솟값보다 공의 개수가 적으면 -1을 반환하면 된다. 공의 개수가 더 많을 경우 1부터 ..