-Code
n, k = map(int, input().split())
min_total = k * (k + 1) // 2
if min_total > n:
print(-1)
elif (n - min_total) % k == 0:
print(k - 1)
else:
print(k)
1부터 k까지의 합을 구하여 그 수보다 n이 작으면 -1이 되게 하고 그 수가 n보다 클 때 k로 나누어지면 값을 출력하는 것 까지는 생각을 했으나 합보다 n이 클 경우 무조건 k나 k-1이 되는데 k-1인 경우만 생각하고 다른 경우의 원리를 몰라서 해결을 못했었습니다. 그래서 해당 경우의 원리를 보니 제일 큰 수부터 1씩 더해지면 아무리 커도 k-1이 나오는 것을 알게 되어서 해결을 했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 11256번 사탕 (0) | 2022.05.08 |
---|---|
[백준/파이썬] 16208번 귀찮음 (0) | 2022.05.08 |
[백준/파이썬] 20922번 겹치는 건 싫어 (0) | 2022.05.07 |
[백준/파이썬] 11441번 합 구하기 (0) | 2022.05.07 |
[백준/파이썬] 14929번 귀찮아 (SIB) (0) | 2022.05.07 |