python__['in' operator]

Jaewon Lee·2021년 8월 13일
1

Algorithm

목록 보기
32/36
post-thumbnail

On.

파이썬으로 문제를 풀다보면 in이라는 오퍼레이터를 굉장히 많이 사용하게 되는데, 주의해야할 경우가 있다.

뒤에 리스트가 오는지, 딕셔너리가 오는지에 따른 차이인데 당장 알아보도록 하자!


리스트와 딕셔너리의 차이


in + 리스트

  • 리스트에 있는 원소 하나하나와 연산을 수행한다.
  • 때문에 시간복잡도가 O(N)이다.
arr = [5, 4, 3, 2, 1]
if 1 in arr:
    pass
  • 1이 arr에 있는지 확인하기 위해서, arr을 전부 순회하게 된다.

in + 딕셔너리

  • 해쉬로 값을 탐색하게 된다.
  • 때문에 시간복잡도가 O(1)이다.
dic = {1: None, 2: None, 3: None}
if 1 in dic:
    pass
  • 1이 dic에 있는지 확인하기 위해서, dic을 전부 순회하지 않고 해싱하여 탐색한다.
  • 참고로 set도 딕셔너리라서 in 뒤에 set 자료구조가 오게 되면 탐색 시, O(1)이라는 시간복잡도를 가진다.

배운점

  • 이중 for문 안에서 조건문으로 in + 리스트 사용하는 것에 주의하자! O(N^3)이 될 수도 있음

Off.


프론트와 백을 넘나드는 리드 개발자가 되는 그날까지 🔥🔥🔥

profile
Communication : any

0개의 댓글