N개의 최소공배수
아이디어
(작성중)
풀이
def gcd(x, y):
while y:
x, y = y, x % y
return x
def lcm(x, y):
return x * y // gcd(x, y)
def solution(arr):
answer = arr[0]
for num in arr[1:]:
answer = lcm(answer, num)
return answer
연속 부분 수열 합의 개수
아이디어
(작성중)
풀이
def solution(elements):
n = len(elements)
prefix_sum = [0] * (2 * n + 1)
for i in range(1, 2 * n + 1):
prefix_sum[i] = prefix_sum[i - 1] + elements[(i - 1) % n]
sums = set()
for start in range(1, n + 1):
for end in range(start, start + n):
sums.add(prefix_sum[end] - prefix_sum[start - 1])
return len(sums)
'학습 노트 > 알고리즘 (Python)' 카테고리의 다른 글
99클럽 - 나이 계산하기 (0) | 2024.05.02 |
---|---|
99클럽 - 방학 숙제 (0) | 2024.05.01 |
99클럽 - RGB거리 (0) | 2024.05.01 |
99클럽 - 진짜 공간 (0) | 2024.04.27 |
99클럽 - 거리 두기 게임 (0) | 2024.04.27 |