파이썬의 기본 정렬 및 커스텀 정렬
·
프로그래밍 언어/Python
정렬 기능은 알고리즘 문제 풀이 뿐만 아니라 솔루션 및 웹사이트 등을 개발할 때에도 매우 중요한 기능이다.오늘은 파이썬의 내장함수를 통한 기본 정렬 뿐 아니라 사용자 정의 기준에 따른 커스텀 정렬 방법까지 자세히 알아보고자 한다.파이썬의 기본 정렬파이썬에서 정렬을 수행하는 가장 기본적인 방법은 sorted() 메소드와 list 자료형의sort() 내장 메소드를 사용하는 것이다. 이 두 방법을 정렬된 결과를 메소드 하나로 쉽게 얻을 수 있도록 해준다. 1. sorted() 메소드sorted() 메소드는 원본 리스트는 변경하지 않은 채 정렬된 새로운 리스트를 반환한다. 이 메소드는 리스트 뿐만 아니라 모든 반복 가능한 객체에서 사용할 수가 있다 (리스트, 튜플, 문자열 등). sorted(iterable, ..
파이썬에서 우선순위 큐(Priority Queue)를 구현하는 방법
·
프로그래밍 언어/Python
Programmer 문제를 풀던 중 Priority Queue가 필요한 경우가 생겼다.파이썬에는 여러 라이브러리가 있다보니 대중적으로 알고리즘 문제 풀이에 많이 쓰이는Priority Queue 구현 방법을 복기하고자 한다.heapq 모듈파이썬에서는 heapq 모듈을 사용해 간단하고 효율적으로 리스트 자료형의 우선순위 큐를 구현할 수가 있다. heapq가 단순히 우선순위 큐만을 제공하기 위해 나온 것은 아니고, 최소 힙(Min-Heap) 자료구조를 제공하는 모듈이다.이를 통해 우선순위 큐를 구현할 수 있는 이유는 최소 힙은 완전 이진 트리로, 부모 노드가 항상 자식 노드보다 작거나 같은 값을 가지는 특성을 갖고 있기 때문이다. 이를 통해서 항상 최솟값을 O(1)의 시작 복잡도로 얻을 수 있고, 트리 노드를..
파이썬에서 큐(Queue)를 구현하는 방법
·
프로그래밍 언어/Python
LeetCode에서 알고리즘 문제를 푸는 사람들이라면 무조건 한 번 쯤은 접해봤을 TreeNode.Queue를 사용하면 각 노드들의 방향을 알면서 BFS 탐색이 가능하기 때문에오늘의 문제에서는 Python, C++, Java 각기 다른 언어를 사용해 Queue를 사용한 알고리즘 문제를 풀었다.Java를 사용한 큐 구현엔 익숙하지만, 아직 Python으로 구현하는 자료 구조들엔 익숙하지 않아블로그에 포스팅하며 제대로 사용하는 방법을 복기하고자 한다.Queue란 무엇일까 큐는 데이터를 순서대로 처리하기 위해 사용하는 FIFO 구조의 선형 자료 구조이다. 큐의 가장 큰 특징은 FIFO 구조이다. FIFO(피포; First-In First-Out)란 가장 먼저 온 데이터가 가장 먼저 나가고, 가장 늦게 온 데이..
List와 Tuple
·
프로그래밍 언어/Python
최근 파이썬, C++으로 LeetCode로 알고리즘 문제를 해결하고 있다.Pythonic한 코드를 작성하기 위해 파이썬 문법을 학습하던 중, List와 Tuple이 많이 비교되고 있는 것을 알았다. 점프 투 파이썬에 따르면, 튜플은 몇 가지의 점을 제외하고는 리스트와 거의 비슷하다는데리스트와 튜플의 차이가 무엇인지, 주로 어디 쓰지는지를 알아보고자 하여 이 글을 작성한다. List란 무엇일까리스트는 다양한 자료형의 아이템을 여러 개 저장할 수 있는 가변적 데이터 구조이다.따지자면 Java의 ArrayList, C++의 vector와  비슷하다고 볼 수 있는데, 풀어 설명하자면 아래와 같은 특징이 있다. 가변적으로 값을 삽입/삭제할 수 있다.아이템이 삽입된 순서를 유지하여 인덱스를 통해 해당 위치의 값에 ..
유영웅
'프로그래밍 언어/Python' 카테고리의 글 목록