1. 문제
https://www.acmicpc.net/problem/1024
1024번: 수열의 합
첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다.
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
from collections import deque
n, l = map(int, input().split())
n_l = deque()
iter_b = True
for i in range(l, 101):
if iter_b == False:
break
n_l.clear()
temp = n // i
n_l.append(temp)
if i % 2 == 1:
if temp - (i % 2) < 0:
print(-1)
break
for j in range(1, (i // 2) + 1):
if temp - j < 0:
print(-1)
iter_b = False
break
n_l.appendleft(temp - j)
n_l.append(temp + j)
elif i % 2 == 0:
n_l.append(temp+1)
for j in range(1, (i // 2)):
if temp - j < 0:
print(-1)
iter_b = False
break
n_l.appendleft(temp - j)
n_l.append(temp + j + 1)
if sum(n_l) == n:
print(*n_l)
break
if i == 100:
print(-1)
3. 후기
- 위 문제는 4번의 제출만에 해결할 수 있었다.
계속해서 어느 부분의 코드가 잘못되었는지를 찾아보았는데, 아무리 생각해도 코드에 문제가 없다고 생각하던 중에 설마 출력하는 부분에서 틀린건가라는 생각으로 출력 부분을 수정했는데 바로 통과하였다.
문제와 직접적인 연관을 갖는 코드의 문제를 해결하는 것도 중요하겠지만, 도출된 값을 정확하게 출력하는 것도 중요하겠다.
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 한 줄로 서기(1138) (0) | 2023.03.08 |
---|---|
(Python)백준 코딩테스트 연습 - 친구(1058) (0) | 2023.03.03 |
(Python)백준 코딩테스트 연습 - 유기농 배추(1012) (0) | 2023.02.26 |
(Python)백준 코딩테스트 연습 - 병든 나이트(1783) (0) | 2023.02.24 |
(Python)백준 코딩테스트 연습 - 분수 합(1735) (0) | 2023.02.23 |