해결된 질문
작성
·
26
·
수정됨
0
몇 챕터/몇 강을 수강 중이신가요? 1-10
어떤 알고리즘을 학습하고 계신가요? 1-10
실제로 코테볼때 collections을 import 하지 말라는 제약조건이 있는 경우도 있는지 궁금합니다. (예전에
js로 코테볼때 fetch 말고 xhr 써야된다는 제약조건을 본적이 있어서...ㅋ)
아래 경우는 Counter에서 순회한번 해서 O(N), for c in s
반복문 O(N), 조건문은 딕셔너리가 해시테이블이라 O(1)
O(N) + O(N) = O(N) 으로 계산했는데 맞나요?
from collections import Counter
def solution(s):
count = Counter(s)
return next((c for c in s if count[c] == 1), "_")
답변 1
1
안녕하세요 ehrbs2018 님 좋은 질문 감사합니다!!
실제 코테에서 마주할 수 있는 현실적인 고민들인 것 같습니다
1. collections 모듈 사용 가능 여부
대부분의 기업에서는 collections 사용이 가능합니다. 제가 경험한 38개 기업 중 대부분이 Python 표준 라이브러리는 자유롭게 사용할 수 있도록 했습니다!
2. 시간복잡도 계산 검토
정확한 분석입니다!
Counter(s)
: 문자열 s를 한 번 순회하면서 각 문자의 빈도수를 계산 → O(N)
for c in s
: 다시 문자열을 순회하면서 조건 확인 → O(N)
count[c] == 1
: 딕셔너리 조회는 해시테이블 특성상 → O(1)
따라서 O(N) + O(N) = O(N)이 맞습니다.
좋은 질문 감사합니다 즐건 주말 보내세요!!