본문 바로가기
카테고리 없음

코딩테스트 합격자 되기 - 04 코딩 테스트 필수 문법

by bzerome240 2023. 12. 31.

 

 

코딩테스트 합격자 되기 - 04 코딩 테스트 필수 문법

[집중 포인트] 본격적으로 알고리즘 / 자료구조를 공부하기 전에 파이썬의 기본문법에 대한 개념을 익힙니다. 기본적으로 파이썬의 큰 특징을 알아보면 다음과 같습니다. 가볍...

cafe.naver.com

 

 

1. 기본 컬렉션 타입 코드는 외울 수 있도록하기! 예시코드들의 시간복잡도 정리하기

 

리스트

  • append(item) : 리스트의 맨뒤에 추가한다.
    • 시간복잡도 : O(1)
  • insert(idx, item) : 리스트 idx에 추가하기
    • 시간복잡도: O(n)
  • pop() : 리스트 마지막 요소 제거
    • 시간복잡도 : O(1)
    • pop(0) 하게되면 리스트만큼 돌아야하므로 시간 복잡도 : O(n)
  • remove(item) : 리스트에서 item을 찾아 제거
    • 시간복잡도 : O(n)
  • extend(li) : 리스트에 li의 모든 요소를 추가
    • 시간복잡도 : O(k) (k: li의 길이)
  • lst[k] : 리스트의 k 위치에 접근
    • 시간복잡도 : O(1)
  • item in lst : lst에 item이 있는지 검사
    • 시간복잡도 : O(n)
  • 예시코드

 

딕셔너리

  • dic.get(key) / dic[key] : key에 해당하는 값 반환
    • dic.get(key) 은 key가 없으면 none을 반환
    • dic[key]은 key가 없으면 keyError를 발생, except KeyError as e: 로 catch할 수 있다.
    • 시간복잡도 : O(1)
  • dic.pop(key) : key에 해당하는 항목 제거
    • key가 없으면 keyError를 발생, except KeyError as e: 로 catch할 수 있다.
    • 시간복잡도 : O(1)
  • 'key' in dic : dic에 key가 있는지 검사
    • 시간복잡도 : O(1)
  •  예시코드

 

집합

  • 집합 s 생성 s = set()
  • s.add(item) : s집합에 item 추가
    • 시간복잡도 : O(1)
  • s.remove(item) / s.discard(item) : s집합에서 item 제거
    • s.remove(item) 는 key가 없으면 keyError를 발생, except KeyError as e: 로 catch할 수 있다.
    • s.discard(item) 는 key가 없어도 에러를 발생시키지 않는다.
    • 시간복잡도 : O(1)
  • s1.union(s2) : 합집합 
  • s1.intersection(s2) : 교집합
  • s1.difference(s2) : 차집합
  • set(list)
  • item in s
    • 시간복잡도 : O(1)
  •  예시코드

 

문자열

  • ','.join(['a','b','c']) : delimiter 문자열로 배열의 문자열 합치기
    • 시간복잡도 : O(n) 
  • str.replace(old, new) : 문자열 교체
    • 시간복잡도 : O(n)
  • str.split(sep) : sep 기준으로 문자열 분리
    • 시간복잡도 : O(n)
  • str.startswith(a) : a로 시작하는지 검사
  • str.endswith(a) : a로 끝나는지 확인 
    • 시간복잡도 : O(k) (k: a의 길이) 
  •  예시코드

 

 

list comprehension

  • "List comprehension"은 리스트를 생성하는 간결하고 효율적인 방법입니다.
  • 기본 구조는 [expression for item in iterable if condition] 이며, 이 구조를 사용하여 for 문과 if 문을 사용한 루프보다 더 간결하게 리스트를 생성할 수 있습니다.
  • List comprehension은 코드를 간결하게 만들고, 코드의 가독성을 향상시킵니다.
  • 또한, 내부적으로 최적화되어 일반적인 for 루프보다 빠른 실행 시간을 제공합니다.
  • 예시 코드

 


 

Q. list comprehension을 이용해서 1~100까지 수 중 3과 9의 공배수인 수만 리스트에 담기도록 구현하기.

li = [i for i in range(1,100) if i%3==0 or i%9 == 0]
print(li)

 

 

728x90
반응형

댓글