본문 바로가기

Programming/Python4

[ Python ] Sorting 튜플을 정렬하는 방법을 확인합니다. 01. 첫 번째 원소로 오름차순 정렬하는 경우입니다. 02. 첫 번째 원소로 내림차순 정렬하는 경우. 03. 두 번째 원소로 오름차순 정렬하는 경우. 04. 첫 번째 원소로 오름차순 정렬 & 첫 번째 원소가 같은 경우 두 번째 원소로 오름차순 정렬하는 경우. 05. 첫 번째 원소로 내림차순 정렬 & 첫 번째 원소가 같은 경우 두 번째 원소로 오름차순 정렬하는 경우. 2022. 7. 19.
[ Python ] Combination (조합) 서로 다른 n개 중에서 r개를 취한 조합을 의미합니다. 조합은 순서를 고려하지 않습니다. python의 itertools 라이브러리를 이용하면 순열과 조합을 for 문 없이 구현할 수 있습니다. combinations 함수를 사용합니다. ex) 예를 들어 [ 1, 2, 3 ] 의 리스트가 존재할 때, 2개의 원소를 골라 나열하면 [ [1, 2], [1, 3], [2, 3] ] 총 3가지가 나오게 됩니다. 이때 [1, 2] 와 [2, 1]은 같은 것으로 취급합니다. 2022. 7. 4.
[ Python ] Slicing 이번 시간은 Slicing입니다. 리스트 num에서 s ~ e 번째에 해당하는 값을 출력하고 싶습니다. 이때 사용하는 것이 slicing입니다. 예시로 아래 코드는 num에서 2번째 ~ 5번째 값을 뽑으려고 합니다. 이때 num[ s : e ] 라고 한다면 num [2 : 5] 입니다. 리스트의 index는 0부터 시작합니다. [ * 번째 ] 1 2 3 4 5 6 [ index ] 0 1 2 3 4 5 [ 값 ] 5 2 7 3 8 9 2번째 값을 뽑기 위해서는 index 1 을 확인해줘야 합니다 ( n번째 - 1 ) 5번째 값 위치도 index 4 입니다 num[1 : 4] 라고 하면 1번째부터 4번째까지 값이 나올까요? 💡 꼭 주의해야 하는 부분입니다. slicing은 index = 마지막 범위 -1 .. 2022. 6. 26.
[ Python ] Heap Programmers 문제를 풀면서 계속 시간 초과가 나는 이슈가 발생했습니다. sort() 로 인한 시간 초과임을 짐작해보았고, 이를 heap으로 해결할 수 있음을 확인했습니다. [ Heap ] python 에서는 heap을 heapq라는 함수를 제공해주고 있습니다. heapq 모듈은 이진트리 기반의 최소 힙 자료구조를 제공합니다. 쉽게 설명하면 데이터를 추가하거나 삭제할 때, 가장 작은 값이 정렬되어 있는 자료구조입니다. 즉 데이터를 삽입하고 꺼낼 때, 전체를 다시 정렬해 줄 필요 없이 자료구조 알고리즘을 통해 결정됩니다. heap 구조는 pop, push 의 시간 복잡도가 굉장히 적습니다. heapq를 사용하지 않으면, sort() 를 사용해야 하고 이는 시간 초과를 발생시킬 수 있습니다. impo.. 2022. 6. 9.