알고리즘 풀이를 하다가 조건문을 작성하게 되었다.
if paren == '}' or paren == ')' or paren == ']':
if paren in ['}', ']', ')']:
== 연산자를 사용하면 시간복잡도는 O(1)로 속도는 빠르지만 조건이 많아질수록 코드가 길어져 가독성이 매우 나빠진다.
리스트 탐색은 내가 찾는 요소가 리스트 앞쪽에 위치한다면 탐색 시간이 길지 않겠지만 리스트 맨 뒤에 위치할 경우 O(n)의 시간복잡도를 가진다.
시간복잡도와 가독성 모두를 잡을 수 있는 방법은 없을까?
있다. set()
을 사용하는 것이다.
if paren in {'}', ')', ']'}:
set은 해시테이블 구조이기 때문에 시간복잡도 O(1)을 가진다.
코드는 list와 동일한 구조이므로 가독성 역시 높아진다.
포함 여부를 확인할 때는 set
을 사용하는 것이 유용하다