[구간 합] 접두사 합
구간 합의 시간복잡도는 O(NM)이다. N,M의 데이터가 커지면 시간복잡도가 증가하게 되어 문제가 발생한다. 이럴 경우 구간 합 혹은 누적 합 계산을 빠르게 하기 위해 접두사 합을 이용하면 된다. 접두사 합은 리스트의 맨 앞부터 특정 위치까지의 합을 미리 구해놓은 것이다. 아래를 코드를 실행시키면 sum value = [0, 10, 30, 60, 100, 150] 이 되며 sum_value[right] - sum_value[left-1] 을 해주면 빠르게 구할 수 있다. n = int(input()) data = [10,20,30,40,50] sum_value = 0 prefix_sum = [0] for i in data: sum_value += i prefix_sum.append(sum_value) l..
2023. 2. 26.
[백준] 2960번 에라토스테네스의 체(python)
https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 1. 난이도 실버4 (🥈) 2. 문제 해결 방법 에라토스테네스 체 복습할 겸 풀어봤다. 이 문제에선 소수도 지우는 수로 count 한다는 점을 주의해서 해결하면 된다. n,k = map(int, input().split()) num = [True] * (n+1) x = 0 for i in range(2,n+1): if num[i] == True: x += 1 if x == k: print(i) break for j in range(2*i, n+1, i): if num[j] != Fal..
2023. 2. 26.