1. 구해야 하는 것
# 더해서 total이 되는 연속된 수들의 배열
2. 1을 구하기 위해 필요한 것
# 기준이 되는 배열의 가운데 수
# 가운데 수를 기준으로 몇개의 수를 넣어야할지
3. 그 외 고려사항
# 짝수일 때는 배열의 가운데 수 2개 중 더 작은 수가 구해짐
처음에 2로 나눈 나머지를 통해 홀수인지 짝수인지 판별,
홀수라면 중간값을 기준으로 num//2을 뺀 부분에서 더한 부분 +1까지,
짝수라면 중간값이 2개 중 왼쪽 수 이므로 시작 부분에 1을 더해준다
if num % 2 == 1:
answer = [i for i in range(middle_num - num//2, middle_num + num//2 + 1)]
else:
answer = [i for i in range(middle_num - num//2+1, middle_num + num//2 + 1)]
def solution(num, total):
moves = (total - sum(range(1, num+1)))//num
return [i for i in range(moves+1, num+1+moves)]
'코딩 테스트 연습' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 기사단원의 무기 (0) | 2023.05.08 |
---|---|
[알고리즘] 프로그래머스 - 달리기 경주 (0) | 2023.05.04 |
[알고리즘] 프로그래머스 - 부족한 금액 계산하기 (0) | 2023.05.04 |
[알고리즘] 프로그래머스 - 약수의 개수와 덧셈 (0) | 2023.05.04 |
[알고리즘] 프로그래머스 - 내적 (0) | 2023.05.04 |
댓글