[Python] 조건문 탐색 속도 (list, set, ==)

sun_ovo·2024년 10월 12일
0

Algorithm

목록 보기
3/3

알고리즘 풀이를 하다가 조건문을 작성하게 되었다.
if paren == '}' or paren == ')' or paren == ']':
if paren in ['}', ']', ')']:


== 연산자를 사용하면 시간복잡도는 O(1)로 속도는 빠르지만 조건이 많아질수록 코드가 길어져 가독성이 매우 나빠진다.


리스트 탐색은 내가 찾는 요소가 리스트 앞쪽에 위치한다면 탐색 시간이 길지 않겠지만 리스트 맨 뒤에 위치할 경우 O(n)의 시간복잡도를 가진다.


시간복잡도와 가독성 모두를 잡을 수 있는 방법은 없을까?
있다. set()을 사용하는 것이다.
if paren in {'}', ')', ']'}:

set은 해시테이블 구조이기 때문에 시간복잡도 O(1)을 가진다.
코드는 list와 동일한 구조이므로 가독성 역시 높아진다.

결론

포함 여부를 확인할 때는 set을 사용하는 것이 유용하다

profile
개발자의 기초 다지기 ₍ ᐢ. ̫ .ᐢ ₎

0개의 댓글