Inflearn brand logo image

인프런 커뮤니티 질문&답변

ehrbs2018님의 프로필 이미지
ehrbs2018

작성한 질문수

38군데 합격 비법, 2025 코딩테스트 필수 알고리즘

1-10. 알고리즘 더 풀어보기 (2)

1-10 코테 시험에서 collections의 Counter 사용 여부와 복잡도 계산

해결된 질문

작성

·

26

·

수정됨

0

1. 현재 학습 진도

  • 몇 챕터/몇 강을 수강 중이신가요? 1-10

  • 어떤 알고리즘을 학습하고 계신가요? 1-10

     

 

2. 어려움을 겪는 부분

  • 실제로 코테볼때 collections을 import 하지 말라는 제약조건이 있는 경우도 있는지 궁금합니다. (예전에

    js로 코테볼때 fetch 말고 xhr 써야된다는 제약조건을 본적이 있어서...ㅋ)

  • 아래 경우는 Counter에서 순회한번 해서 O(N), for c in s 반복문 O(N), 조건문은 딕셔너리가 해시테이블이라 O(1)

    • O(N) + O(N) = O(N) 으로 계산했는데 맞나요?

 

3. 시도해보신 내용

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)이 맞습니다.

좋은 질문 감사합니다 즐건 주말 보내세요!!

ehrbs2018님의 프로필 이미지
ehrbs2018

작성한 질문수

질문하기