최대 1 분 소요

1. 문제

리스트 길이가 긴 리스트에서 내가 찾아야할 값이 존재하는 위치 찾기

2. 해결방법 및 시간복잡도

  1. 브루트포스 O(N)
  2. 이진탐색 O(logN)
  3. index 라이브러리 O(1)
  4. bisect 라이브러리 O(logN)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 간략 설명

  1. 브루트포스
  • 알고리즘 문제의 뜻 그래도 단순하게 “난폭한 힘” 이다. 단순 무식하게 문제를 해결하는 방식으로 반복문을 많이 사용하기 떄문에 사용하기에 편하나 시간복잡도가 높아질 수 있다.
  1. 이진탐색
  • 마치 업다운 게임처럼 중앙을 계속 변경하면서 좌우로 찾는 방식이다. 계속해서 문제를 절반으로 줄이기때문에 N/2 -> 1/2 * N/2 -> ,,,
  • 결국에는 자료의 갯수 N에 따라 시행횟수가 log2N으로 표기가 되기떄문에 시간 복잡도는 O(logN)이다.