728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120923
내 풀이
def solution(num, total):
answer = []
tmp = 0
for i in range(num):
tmp += i
start_num = (total-tmp)//num
answer = [_ for _ in range(start_num, start_num+num)]
return answer
x + (x+1) + (x+2) + (x+3) ... = total
인 특징을 이용해 풀었다.
위의 식을 종합하면,
nx + (1+2+3+..+n) = total 이다.
우리가 구하고자 하는 값은 x이며, x는 연속된 수 중 처음 시작하는 값이다. n은 num으로 주어졌다.
따라서 (1+2+3+..+n) = tmp를 이용해 num개의 합을 구하고,
x = (total - tmp)//n 을 통해 구하였다.
다른 사람 풀이
def solution(num, total):
answer = []
var = sum(range(num+1))
diff = total - var
start_num = diff//num
answer = [i+1+start_num for i in range(num)]
return answer
전반적인 코드 흐름은 나와 같은데, 내가 구한 tmp를 sum(range(num+1))을 통해 구하였다.
느낀점
웃기게도
https://blog.naver.com/badduck73/119483118
를 보고 생각해내 풀었다 ㅋㅋ
역시 초등학생 수학도 독창적이다^^
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 옹알이 (1) (0) | 2024.04.05 |
---|---|
[프로그래머스][PYTHON] Lv. 0 평행 (0) | 2024.04.03 |
[프로그래머스][PYTHON] Lv. 0 다음에 올 숫자 (0) | 2024.04.02 |
[프로그래머스][PYTHON] Lv. 0 특이한 정렬 (0) | 2024.04.02 |
[프로그래머스][PYTHON] Lv. 0 유한소수 판별하기 (1) | 2024.03.29 |