본문 바로가기
728x90
반응형

백준 알고리즘/자료구조2

[백준 2042][파이썬] 구간 합 구하기(펜윅 트리) https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net https://growth-coder.tistory.com/162 이전 포스팅에서 펜윅 트리(BIT, 이진 인덱스 트리)의 사용법에 대해서 공부하였다. 이 펜윅 트리를 사용하면 구간 합 문제를 쉽게 구현할 수 있다. 우선 갱신 함수이다. def update(i, num): arr[i]+=num while i0: res+=tree[i] i-.. 2023. 4. 26.
[백준 17298][파이썬] 오큰수 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 우선 문제를 봤을 때 가장 먼저 생각나는 알고리즘은 수열의 모든 값을 조사하는데 각각의 수열마다 자신 다음 값부터 끝까지 자신보다 큰 값이 나올 때까지 찾는 방법이다. 9 8 7 6 ... 과 같이 내림차순으로 정렬된 수열이 최악의 경우인데 이럴 경우 1부터 n까지 더한 횟수를 반복해야 한다. 즉 시간 복잡도가 O(N^2)이 된다. n의 최대값이 1,000,000이고 파이썬은 1초에 1억번 정도의 연산을 할.. 2023. 3. 31.
728x90
반응형