본문 바로가기

Kakao Cloud School/Study : Python Algorithm interview

(3)
[파이썬 알고리즘 인터뷰] 2부 5장 리스트, 딕셔너리 리스트 - 순서대로 저장하는 시퀀스이자 변경 가능한 목록 - 입력 순서가 유지되며, 내부적으로 동적 배열로 구현 - 매우 다양한 기능 제공 - 리스트를 사용하면 스택과 큐의 사용 유무를 고민하지 않아도 됨 - 스택과 큐에서 사용 가능한 모든 연산 제공 O(1)에 실행 가능한 연산들 - 리스트 마지막 요소를 .append( )로 추가, - 리스트의 마지막 요소를 pop( )으로 추출, - 원하는 인덱스 조회하는 연산 ( * 요소를 삭제하거나 큐의 연산이기도 한 첫 번째 요소를 추출하는 pop(1)은 O(n)에 해당 ) - 리스트에 큐의 연산을 사용할 때는 주의가 필요함 - 데크(Deque)와 같은 자료형으로 성능을 높일 수 있음 리스트의 주요 연산 시간 복잡도 연산 시간복잡도 설명 len(a) O(1) 전..
[파이썬 알고리즘 인터뷰] 2부 4장 빅오, 자료형 빅오( big - O ) - 입력값이 무한대로 향할때 함수의 상한을 설명하는 수학적 표기 방법 - 입력값이 커질 때 알고리즘의 실행 시간(시간 복잡도)과 함께 공간 요구사항(공간 복잡도)이 어떻게 증가하는지 분류하는 데 사용 - 점근적 실행 시간을 표기할 때 사용하는 수학적 표기법 * 점근적 실행 시간 : 입력값 n이 무한대로 커질 때, 함수의 실행 시간의 추이를 의미함 시간 복잡도(점근적 실행시간) - 어떤 알고리즘을 수행하는 데 걸리는 시간, Computational Complexity - 빅오로 시간 복잡도를 표현할때, 최고차항만 표기, 계수는 무시 - 예를 들어, 4n^2 + 3n + 4의 시간 복잡도는 O(n^2) - 공간복잡도를 표현하는 데에도 사용 - 시간과 공간이 트레이드오프 관계 - 실행..
[파이썬 알고리즘 인터뷰] 2부 3장 파이썬 인덴트 파이썬의 인덴트는 공백 4칸을 원칙으로 하고 있음 * 파이썬 PEP - 파이썬의 개발은 파이썬 개발 제안서(PEP) 프로세스를 통해 진행됨 - PEP 프로세스 : 새로운 기능을 제안하고 커뮤니티의 의견을 수렴하여 파이썬의 디자인 결정을 문서화하는 주요 개발 프로세스임 - 대표적인 파이썬 스타일 가이드인 PEP8이 있음 네이밍 컨벤션 파이썬의 변수명 네이밍 컨벤션은 각 단어를 밑줄로 구분하여 표기하는 스네이크 케이스를 따름 스네이크 케이스 - 각 단어를 언더스코프(_)로 구분, 일반적으로 소문자로 표기(경우에 따라서는 대문자로 표기) - 파이썬의 PEP 8을 통해 - 스네이크 표기법 코딩에 대한 질문시, 파이썬의 PEP 8 철학에 따라 스네이크 코딩 지향 리스트 컴프리헨션 - 기존 리스트를 기반으로..