일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자바 #java
- PYTHON
- 투포인터
- 백준
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- Dijkstra
- java #자바
- 다익스트라
- 백트랙킹
- java #자바 #동빈나
- DFS
- 백준 #파이썬 #알고리즘 #코딩테스트
- 파이썬 #백준 #알고리즘 #코딩테스트
- react #리액트 #동빈나 #나동빈 #유튜브강의
- java #자바 #나동빈
- java #자바 #생활코딩
- 프로그래머스
- dp
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- css #웹 #생활코딩
- BFS
- 재귀
- 코딩테스트
- 알고리즘
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 백준 #알고리즘 #파이썬 #코딩테스트
- 파이썬
- 다이나믹프로그래밍
- react #리액트 #동빈나
- css #생활코딩 #웹
Archives
- Today
- Total
커리까지
for loop 속도 단축하기 본문
728x90
SMALL
- for loop 안에서 연산을 수행할 때 과연 어떤 방법으로 해야 시간을 단축할 수 있을까?
- 여러 가지 방법을 시도해 보았다.
- 시간 날 때 하나씩 하나씩 채워가려고 한다.
- 우선 그 연산이 for loop내에서 무조건 실행되어야 하는지 혹은 for loop 후에 실행해도 되는지에 따라 다르다.
조건문을 만족하는 경우가 적을 경우
접했던 상황은 다음과 같다.
- 비교할 값은 정해져 있었다.
- 그러나 이 값보다 큰 경우가 거의 없다.
- 데이터의
i-1
값과i
값의 차가 비교할 값보다 크면 조건이 충족된다.
- 비교할 값은 정해져 있었다.
대소 비교를 하는데 조건에 만족하는 경우가 적을 때 for loop안에서 연산을 수행하는 것이 좋을지, for loop 밖에서 연산을 수행하는 것이 좋을지 비교를 해보았다.
아래의 경우에는 거의 for loop의 마지막에 가서 조건이 충족되기에 for loop를 다 돌고 밖에서 비교하는 것이 더 유리하다.
for loop 내에서 대소 비교
import time
def compare_max_number(target_number, max_range):
start = time.process_time()
max_number = 0
for i in range(1, max_range):
temp = i - (i-1)
if target_number <= max_number:
end = time.process_time()
print(end - start)
return True
max_number = max(max_number, temp)
return False
compare_max_number(1000002, 1000001)
>
0.234375
for loop 밖에서 대소 비교
import time
def compare_max_number(target_number, max_range):
start = time.process_time()
max_number = 0
for i in range(1, max_range):
temp = i - (i-1)
max_number = max(max_number, temp)
if target_number <= max_number:
end = time.process_time()
print(end - start)
return True
return False
compare_max_number(1000000, 1000001)
>
0.171875
- 제너레이터와 numba 등은 추후에 다시 정리하려고 한다.
728x90
LIST
'Python' 카테고리의 다른 글
윈도우 poetry 설치하기 (0) | 2022.11.24 |
---|---|
AttributeError: 'WebDriver' object has no attribute 'find_elements_by_css_selector' 셀레니옴 (0) | 2022.08.09 |
dict ** 사용법 (0) | 2022.02.25 |
캡슐화 (0) | 2021.05.12 |