[파이썬][알고리즘] 라이브 코딩
1. 문제
리스트 길이가 긴 리스트에서 내가 찾아야할 값이 존재하는 위치 찾기
2. 해결방법 및 시간복잡도
- 브루트포스 O(N)
- 이진탐색 O(logN)
- index 라이브러리 O(1)
- bisect 라이브러리 O(logN)
3. 문제 해결 및 코드
-
주석을 참고하면서 이해를 돕습니다.
4. 알고리즘 간략 설명
- 브루트포스
- 알고리즘 문제의 뜻 그래도 단순하게 “난폭한 힘” 이다. 단순 무식하게 문제를 해결하는 방식으로 반복문을 많이 사용하기 떄문에 사용하기에 편하나 시간복잡도가 높아질 수 있다.
- 이진탐색
- 마치 업다운 게임처럼 중앙을 계속 변경하면서 좌우로 찾는 방식이다. 계속해서 문제를 절반으로 줄이기때문에 N/2 -> 1/2 * N/2 -> ,,,
- 결국에는 자료의 갯수 N에 따라 시행횟수가 log2N으로 표기가 되기떄문에 시간 복잡도는 O(logN)이다.