본문 바로가기

학습 노트/알고리즘 (Python)

99클럽 - N개의 최소공배수, 연속 부분 수열 합의 개수

N개의 최소공배수

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

아이디어

(작성중)

풀이

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

 

연속 부분 수열 합의 개수

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

아이디어

(작성중)

풀이

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