def solution(num, total):
answer = []
multiple = 0
if num%2 == 0:
start_num = num//2
answer = [i for i in range(-(num//2)+1, num//2+1)]
else:
start_num = 0
answer = [i for i in range(-(num//2),num//2+1)]
while(1):
if start_num == total:
answer = [i+multiple for i in answer]
break
start_num += num
multiple += 1
return answer
이번 문제는 주어진 num개의 연속된 수의 합이 total이 되도록 하는 연속된 수로 이루어진 배열을 구하는 문제이다.
처음에는 2중 반복문으로 모든 경우의 수를 다 검색해봤는데 테스트케이스 하나가 틀려서 테스트케이스에서 힌트를 얻고 패턴을 찾아서 풀이할 수 있었다 :)
다른 사람의 풀이를 보니 더 간단하게 푼 사람도 있었는데, 수학 관련 문제는 경우의 수가 가지는 패턴을 찾는 것이 중요한 것 같다.
'Algorithm 💡 > Implementation' 카테고리의 다른 글
[백준 3190번] 뱀 (0) | 2023.08.06 |
---|---|
[백준 21608번] 상어 초등학교 (0) | 2023.07.31 |
[프로그래머스] 바탕화면 정리 (0) | 2023.06.23 |
[프로그래머스] 공원 산책 (0) | 2023.06.23 |
[프로그래머스] 추억점수 (0) | 2023.06.23 |