프로그래밍 언어/Python
-
[python] LBYL와 EAFP프로그래밍 언어/Python 2021. 8. 1. 21:36
오늘은 파이썬의 코딩 스타일인 LBYL과 EAFP에 대해 정리해보려고 한다. 현재 나는 프로그래머스에서 제공하는 파이썬 코테과정 6기를 참여하고 있다. https://programmers.co.kr/learn/courses/12441 [스터디/6기] 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Python반) 🚀 아쉽지만 6기는 마감되었어요. 12월 시작 예정인 7기 오픈 알림을 신청하고, 최저가에 수강하세요! 최저가 알림 받기 코딩테스트와 실무 역량 모두 잡는 스터디: Python반 코딩테스트 운영진과 programmers.co.kr 1주차 과제 문제를 풀고 현업 개발자 리더님에게 코드 리뷰를 받으면서 LBYL과 EAFP를 듣게 되었다. 이 LBYL과 EAFP를 처음 알아서 재미있기도 하고 정리해..
-
[python] deque 사용해보기프로그래밍 언어/Python 2021. 7. 30. 20:50
오늘은 이전부터 많이 사용해왔지만 popleft()만 활요해왔던 deque 객체에 대해 정리해보려고 한다. 보통 deque는 코딩테스트 시에 파이썬에서 기본적으로 제공하는 리스트를 큐로 사용하는 것보다 효율적이여서 사용할 것이다. 효율적이라고 말할 수 있는 대표적인 이유는 원소를 팝할 때이다. 기존적으로 큐라는 자료구조는 FIFO이기 때문에 리스트를 큐로 사용한다면 원소를 팝할 때 list.pop(0)메소드를 사용할 것이다. 여기서 list.pop(0)은 시간복잡도가 O(n)이라는 것을 알아야한다. 위 그림과 같이 pop(0)을 실행하면 그 후에 뒤에 있던 값들이 한 칸씩 당겨지면서 앞 칸을 채우는 작업이 이루어진다. 그래서 pop(0)은 시간복잡도가 O(n)이다. 하지만, deque로 큐를 만들고 po..
-
[python] heapq 모듈 사용해보기프로그래밍 언어/Python 2021. 7. 25. 22:24
오늘은 프로그래머스 문제를 풀면서 heap 자료구조를 사용해야하는 문제를 마주하면서 처음으로 heapq 모듈을 사용해보았다. 앞으로 코딩테스트를 준비하는데 있어 heapq모듈은 자주 쓰일 가능성이 있어 정리해보려고 한다. heapq 모듈은 파이썬 표준 라이브러리에서 제공해주는 것으로 우선순위 큐 알고리즘이라고도 하는 힙(heap) 자료구조 알고리즘의 구현을 제공한다. 간단하게 힙(heap)이 무엇인지 알아보고 넘어가자. 힙(heap) 자료구조란 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 자료구조 특성 상 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아낼 수 있다. 힙의 형태는 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 혹은 작은 이진 트리로 힙에서는 중복된 ..
-
딕셔너리 모듈 (defaultdict, Counter)프로그래밍 언어/Python 2021. 7. 15. 12:36
오늘은 파이썬 알고리즘 인터뷰 책으로 코딩테스트 준비를 하던 중에 알고있지 못했던 좋은 정보를 정리하려고 한다. 1) defaultdict defaultdict의 형태는 우리가 평소에 쓰던 딕셔너리와 같다. 차이점은 딕셔너리는 딕셔너리 안에 존재하지 않은 키에 대한 값(value)를 출력한다거나 접근할 때 KeyError 메시지가 발생한다. 하지만, defaultdict객체를 사용하게 되면 딕셔너리 내에 존재하지 않는 키를 조회하면 디폴트 값을 기준으로 해당 키에 대한 딕셔너리 아이템을 생성해준다. (defaultdict을 사용하기 위해서는 collections를 import해줘야한다.) 위와 같이 C라는 key에 value를 주지 않았어도 KeyError가 나오지 않고 default값인 0이 출력되는 ..