문제
N과 L이 주어질 때, 합이 N이면서, 길이가 적어도 L인 가장 짧은 연속된 음이 아닌 정수 리스트를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다.
출력
만약 리스트의 길이가 100보다 작거나 같으면, 연속된 수를 첫째 줄에 공백으로 구분하여 출력한다. 만약 길이가 100보다 크거나 그러한 수열이 없을 때는 -1을 출력한다.
예제 입력과 출력
알고리즘 분류
수학
탐색
정답
n,l=map(int,input().split(' '))
x=-1
for i in range(l,101):
b=n-(i*i-i)/2
if b % i == 0 and b // i >= 0:
c=b // i
x=0
for j in range(i):
print(int(c+j),end=' ')
break
if x == -1:
print(-1)
백준 알고리즘 1024번 : https://www.acmicpc.net/problem/1024
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 - 1074번 Z - 파이썬(Python) (0) | 2020.04.27 |
---|---|
백준알고리즘 - 1145번 적어도 대부분의 배수 - 파이썬(Python) (0) | 2020.04.26 |
백준알고리즘 - 1568번 새 - 파이썬(Python) (0) | 2020.04.25 |
백준알고리즘 - 1302번 베스트셀러 - 파이썬(Python) (0) | 2020.04.25 |
백준알고리즘 - 1100번 하얀 칸 - 파이썬(Python) (0) | 2020.04.25 |