Read More
[파이썬] 누적 결과를 반환하는 accumulate()
Article author: wellsw.tistory.com
Reviews from users: 49572 Ratings
Top rated: 4.3
Lowest rated: 1
Summary of article content: Articles about [파이썬] 누적 결과를 반환하는 accumulate() import itertools arr = [1, 2, 3, 4, 5] # 누적 합계 result = itertools.accumulate(arr) for item in result: print(item) “”” output: 1 = 1 3 … …
Most searched keywords: Whether you are looking for [파이썬] 누적 결과를 반환하는 accumulate() import itertools arr = [1, 2, 3, 4, 5] # 누적 합계 result = itertools.accumulate(arr) for item in result: print(item) “”” output: 1 = 1 3 … accumulate()는 누적 결과를 반환하는 이터레이터를 만든다. Syntax itertools.accumulate(iterable[, func]) –> accumulate object 사용 예시1) accumulate()는 첫번째 인자는 iterable 객체를 받고, 두 번째 인..
Table of Contents:
소프트웨어에 대한 모든 것
[파이썬] 누적 결과를 반환하는 accumulate() 본문
Syntax
사용 예시1)
사용 예시2)
사용 예시3)
사용 예시4)
[파이썬] 누적 결과를 반환하는 accumulate()
Read More
[python] accumulate(itertools), 누적 합 — 맞왜틀
Article author: deok2kim.tistory.com
Reviews from users: 46689 Ratings
Top rated: 3.2
Lowest rated: 1
Summary of article content: Articles about [python] accumulate(itertools), 누적 합 — 맞왜틀 accumulate. 뜻으로는 축적하다? 한마디로 누적된 합을 뽑아주는 녀석. 사용법. from itertools import accumulate a = [1, 2, 3, 4, 5, 6, 7, 8, … …
Most searched keywords: Whether you are looking for [python] accumulate(itertools), 누적 합 — 맞왜틀 accumulate. 뜻으로는 축적하다? 한마디로 누적된 합을 뽑아주는 녀석. 사용법. from itertools import accumulate a = [1, 2, 3, 4, 5, 6, 7, 8, … 📗 accumulate 뜻으로는 축적하다? 한마디로 누적된 합을 뽑아주는 녀석 🔵 사용법 from itertools import accumulate a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = list(accumulate(a)) print(a) # [1, 2, 3, 4, 5,..
Table of Contents:
블로그 메뉴
공지사항
인기 글
최근 댓글
최근 글
티스토리
📗 accumulate
티스토리툴바
[python] accumulate(itertools), 누적 합 — 맞왜틀
Read More
[Python] 누적합 itertools.accumulate — Programming
Article author: kkg0.tistory.com
Reviews from users: 5513 Ratings
Top rated: 4.2
Lowest rated: 1
Summary of article content: Articles about [Python] 누적합 itertools.accumulate — Programming [Python] 누적합 itertools.accumulate. 2022. 1. 29. 10:43. from itertools import accumulate li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ac = list(accumulate(li)) … …
Most searched keywords: Whether you are looking for [Python] 누적합 itertools.accumulate — Programming [Python] 누적합 itertools.accumulate. 2022. 1. 29. 10:43. from itertools import accumulate li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ac = list(accumulate(li)) … from itertools import accumulate li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ac = list(accumulate(li)) print(li) print(ac) 출력값 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
Table of Contents:
블로그 메뉴
인기 글
티스토리
티스토리툴바
[Python] 누적합 itertools.accumulate — Programming
Read More
[알고리즘] 부분합, 누적합 (Prefix Sum) 쉽게 알아보기(파이썬)
Article author: yiyj1030.tistory.com
Reviews from users: 8054 Ratings
Top rated: 3.0
Lowest rated: 1
Summary of article content: Articles about [알고리즘] 부분합, 누적합 (Prefix Sum) 쉽게 알아보기(파이썬) 부분합, 누적합이라고 불리우는 배열의 일부 구간에 대한 합을 매우 빠르게 구할 수 있게 해주는 스킬이다. N개의 원소로 이루어진 배열이 주어졌을 … …
Most searched keywords: Whether you are looking for [알고리즘] 부분합, 누적합 (Prefix Sum) 쉽게 알아보기(파이썬) 부분합, 누적합이라고 불리우는 배열의 일부 구간에 대한 합을 매우 빠르게 구할 수 있게 해주는 스킬이다. N개의 원소로 이루어진 배열이 주어졌을 … 부분합, 누적합이라고 불리우는 배열의 일부 구간에 대한 합을 매우 빠르게 구할 수 있게 해주는 스킬이다. N개의 원소로 이루어진 배열이 주어졌을 때 반복문을 통해 부분 배열의 합을 구하려면 O(N)이 걸리는데,..
Table of Contents:
관련글
댓글0
전체 방문자
티스토리툴바
[알고리즘] 부분합, 누적합 (Prefix Sum) 쉽게 알아보기(파이썬)
Read More
[백준] 11660 구간 합 구하기 5 (python) – 누적 합 (2차원) 정리 — CastleRain
Article author: castlerain.tistory.com
Reviews from users: 12767 Ratings
Top rated: 3.5
Lowest rated: 1
Summary of article content: Articles about [백준] 11660 구간 합 구하기 5 (python) – 누적 합 (2차원) 정리 — CastleRain [백준] 11660 구간 합 구하기 5 (python) – 누적 합 (2차원) 정리. CastleRain 2022. 3. 4. 01:22. 문제 링크 : https://www.acmicpc.net/problem/11660. …
Most searched keywords: Whether you are looking for [백준] 11660 구간 합 구하기 5 (python) – 누적 합 (2차원) 정리 — CastleRain [백준] 11660 구간 합 구하기 5 (python) – 누적 합 (2차원) 정리. CastleRain 2022. 3. 4. 01:22. 문제 링크 : https://www.acmicpc.net/problem/11660. 문제 링크 : https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는..
Table of Contents:
인기 글
최근 글
최근 댓글
블로그 메뉴
공지사항
태그
티스토리
[백준] 11660 구간 합 구하기 5 (python) – 누적 합 (2차원) 정리 — CastleRain
Read More
See more articles in the same category here: Top 721 tips update new.
[파이썬] 누적 결과를 반환하는 accumulate()
반응형
accumulate()는 누적 결과를 반환하는 이터레이터를 만든다.
Syntax
itertools.accumulate(iterable[, func]) –> accumulate object
사용 예시1)
accumulate()는 첫번째 인자는 iterable 객체를 받고, 두 번째 인자는 누적 연산을 수행할 함수를 취한다.
두 번째 인자는 default로 operator.add이다.
import itertools arr = [1, 2, 3, 4, 5] # 누적 합계 result = itertools.accumulate(arr) for item in result: print(item) “”” output: 1 = 1 3 = 1 + 2 6 = 3 + 3 10 = 6 + 4 15 = 10 + 5 “””
사용 예시2)
누적 연산 함수를 mul(곱셉)을 지정한 코드이다.
import itertools import operator arr = [1, 2, 3, 4, 5] result = itertools.accumulate(arr, operator.mul) for item in result: print(item) “”” output: 1 2 6 24 120 “””
사용 예시3)
새롭게 정의한 누적 연산 함수를 지정한 모습이다.
import itertools arr = [1, 2, 3, 4, 5] def test_func(x, y): return x * y + 3 result = itertools.accumulate(arr, test_func) for item in result: print(item) “”” output: 1 5 18 75 378 “””
사용 예시4)
초기값 지정이 가능하다
import itertools import operator arr = [1, 2, 3, 4, 5] # 초기값을 3으로 지정 result = itertools.accumulate(arr, operator.add, initial=3) for item in result: print(item) “”” output: 3 4 6 9 13 18 “””
반응형
[python] accumulate(itertools), 누적 합
반응형
📗 accumulate
뜻으로는 축적하다?
한마디로 누적된 합을 뽑아주는 녀석
🔵 사용법
from itertools import accumulate a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = list(accumulate(a)) print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(b) # [1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
값이 저절로 누적되는 것을 볼 수 있다.
이것을 왜 사용하느냐하면
사실 for문 만으로도 값을 누적한 리스트를 뽑을 수 있지만 속도면에서 큰 차이가 난다.( 특히 값이 커지면 커질수록 )
🔵 속도 측정
1번 for문
a = [x+1 for x in range(1000000)] for i in range(1, len(a)): a[i] += a[i-1]
2번 accumulate
a = [x+1 for x in range(1000000)] b = list(accumulate(a))
실행 코드 값 속도 for문 10만 0.01894974708557129 accumulate 10만 0.004986286163330078 for문 1000만 1.868004560470581 accumulate 1000만 0.766948938369751
accumulate가 확실히 빠른것을 볼 수 있다. 많이 사용할 일은 없겠지만 알아두면 좋을 것 같다.
반응형
[알고리즘] 부분합, 누적합 (Prefix Sum) 쉽게 알아보기(파이썬)
반응형
부분합, 누적합이라고 불리우는 배열의 일부 구간에 대한 합을 매우 빠르게 구할 수 있게 해주는 스킬이다.
N개의 원소로 이루어진 배열이 주어졌을 때 반복문을 통해 부분 배열의 합을 구하려면 O(N)이 걸리는데, 부분합을 이용하면 모든 부분합을 O(1)에 바로바로 구할 수 있다.
1차원 배열
– 직관적으로 매우 쉽게 이해가 가능하다. arr을 순차 탐색하면서 sum 배열을 만들어주면 된다.
sum[i]에는 arr[0] + arr[1] + … + arr[i-1]의 정보가 담겨 있다고 생각하면 된다.
– 활용법
arr의 i항부터 j항까지의 합을 S(i, j)라고 하자.
이때 S(i, j) = sum[j+1] – sum[i]이다.
2차원 배열
– 2차원 배열도 같은 방식이다. arr을 순차 탐색하면서 sum 배열을 만들어주면 된다.
이때 sum[i][j]에는 arr[0][0]부터 arr[i-1][j-1]까지의 합이 담겨 있다고 생각하면 된다.
그림을 보면 바로 이해 가능
이때 그럼 sum 배열은 어떻게 만들지?? 아래와 같이 반복문 돌려주면 된다.
이때 기억해놓으면 좋은 식은 sum_arr[i][j] = arr[i-1][j-1] + sum_arr[i-1][j] + sum_arr[i][j-1] – sum_arr[i-1][j-1]
arr = [[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6]] # 가로길이 4, 세로 길이 3 m = 4 n = 3 sum_arr = [[0 for _ in range(m+1)] for _ in range(n+1)] for i in range(1, n+1): for j in range(1, m+1): sum_arr[i][j] = arr[i-1][j-1] + (sum_arr[i-1][j]) + (sum_arr[i][j-1]) – (sum_arr[i-1][j-1]) # 결과 보기 print(‘sum_arr : ‘) for i in range(n+1): print(sum_arr[i])
그럼 예상한 결과가 잘 나온다.
sum_arr : [0, 0, 0, 0, 0] [0, 1, 3, 6, 10] [0, 3, 8, 15, 24] [0, 6, 15, 27, 42]
– 2차원 구간합 활용법(중요!!)
이제 이 sum_arr을 활용하면 2차원 배열에서도 상수 시간에 구간합을 구할 수 있게 된다.
arr의 (x1, y1)부터 (x2, y2)까지 합을 S라 할 때,
S = sum[x2+1][y2+1] – sum[x2][y2+1] – sum[x2+1][y2] + sum[x1][y1]로 구할 수 있다.
-진짜 진짜 활용(중요!)
이 문제를 풀어보자!
https://programmers.co.kr/learn/courses/30/lessons/92344
반응형
So you have finished reading the 파이썬 누적 합 topic article, if you find this article useful, please share it. Thank you very much. See more: 파이썬 누적합 while, 파이썬 리스트 누적합, 파이썬 수열 누적합, 파이썬 누적합 시간복잡도, python dataframe 누적합, 누적합 알고리즘, 파이썬 누적곱, 파이썬 점수 누적