전체 글
-
[CS] 퀵 정렬(Quick Sorting)Computer Science 2020. 11. 20. 22:30
찰스 앤서니 리처드 호어라는 사람이 만든 정렬 알고리즘이다.분할 정복(Divide and Conquer) 방식을 기반으로 하며최악의 경우 O(N^2), 평균적인 경우 O(n log n)의 시간 복잡도를 가진다.요소들이 균일하게 섞여있는 경우 가장 빠르며, 내림차순으로 정렬되어 있을 때에 가장 느리다.이름에서도 알 수 있듯, 가장 빠른 정렬 알고리즘들 중 하나에 속한다. 분할 정복방식이란?분할 정복 방식이란 말 그대로 어떤 커다란 문제를 여러 개의 작은 문제로 분할 한 뒤, 각각을 해결하고,해결된 각 부분을 합하여 전체의 문제를 정복하는 문제 해결 방식이다.퀵 정렬도 이러한 방식을 기초로 하고 있다. 퀵 정렬 알고리즘의 수행 과정1.배열의 첫번째 요소를 피벗(Pivot)으로 정한다. 여기서 피벗이란 배열의..
-
[PS] 백준 - 수 정렬하기 2Problem Solving 2020. 11. 19. 21:03
입력된 갯수만큼 수를 입력하고,해당 수열을 오름차순으로 정렬해야하는 문제이다. a = int(input()) entries=[] for x in range(0,a): entries.extend([int(input())]) entries.sort() for x in entries: print(x)멍청하게도, 그냥 아싸리 파이썬의 정렬함수를 이용하여 제출했으나결과는 제한 시간 2초를 넘겨 통과하지 못했다. 제한 시간이 2초밖에 안되는 만큼, 가장 빠른 정렬을 이용할 필요가 있다고 생각했고,퀵 정렬을 이용하기로 하였다. def quicksort(entry): if len(entry) entry[1]: temp = en..
-
[개발 팁] Vim 에디터란 무엇인가?개발 팁 2020. 11. 17. 21:55
최근에 즐겨보게 된 유튜브 채널 중에 얄코-얄팍한 코딩 지식이라는 채널이 있다. 설명도 아주 친절하게 잘해주는 건 물론이고, 도중에 간간히 유머도 녹아있어 초보자들이 입문으로 접하기에 아주 좋은 채널이라고 생각한다.이 채널의 동영상들을 시간 가는 줄 모르고 하나씩 보다가 Vim 에디터에 대한 소개 영상이 눈에 들어 왔다. Vim. AWS 원격 접속 시 환경 세팅을 하는 데에서 잠깐 봤던 녀석이다. 리눅스와 같은 CLI 환경에서 사용되는 구닥다리 유물 쯤으로 생각하고 있었으나, 얄코의 소개 영상을 보고 생각이 조금 달라졌다. CLI 환경에서만 즐겨 사용되는 것이 아닌, GUI 환경에서도 Vim을 고집하는 사람들이 있다지 뭔가. 기존에 익숙해진 방식에서 벗어나기 어려워하는 괴짜 같은 개발자가 아닌가 생각했으..