👨💻 특징 - pivot을 기준으로 그룹을 나눠 정렬하는 방식 - pivot 선택 방식에 따라 속도가 크게 차이난다. - 최악의 경우 n^2의 속도가 날 수 있으므로 pivot을 잘 선택해야 한다. - 정렬이 되지 않은 리스트의 경우 중앙값이 가운데 값이 아니므로 시작값, 중간값, 마지막 값 중 가운데 값을 피봇으로 설정한다. 💾 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 def quick_sort(lst): # 기저조건 만들기 if len(lst) pivot: right.append(n) elif n
👨💻 특징 - binary search (이진 탐색) - 주어진 리스트를 절반씩 줄여가며 탐색 - O(logN)의 속도 - 이미 정렬되어 있는 리스트에서만 사용 가능 🚦 필요한 경우 - 선형 순차 탐색보다 빠른 탐색이 필요하고 리스트가 정렬되어 있는 경우 사용한다. 💾 코드 123456789101112131415161718192021222324252627282930313233343536 # iteration 사용 def b_search_e(lst, target): start_idx = 0 end_idx = len(lst)-1 # idx의 역전이 일어날 때까지 순회 while start_idx target: end_idx = target_idx - 1 elif lst[target_idx] end_idx ..

프로젝트의 urls에 url request를 설정할 경우 - urls.py는 request url을 받았을 때 어떤 뷰와 매핑 될 지를 결정해 주고, 이러한 이유로 여러 앱들에서 같은 이름의 여러한 views를 import해주어야 하는 문제가 발생한다. 또한 한 페이지에 존재하는 수많은 url 패턴들을 일일히 지정해주어야하는 문제가 발생한다. 각각의 app urls에서 request를 설정하는 방법 - app 내의 urls.py을 만들어 설정해준다. views모듈을 같은 posts 패키지 내에서 import해주기 때문에 현재 디렉토리를 뜻하는 . 에서 import 해준다. 또 path에서 원래 적었던 'posts/' 가 아닌 빈 문자열로 설정해준다. - 프로젝트의 urls.py에서 추가 설정을 해준다. ..
Web Framework - 웹 서비스 개발을 위한 각종 편리한 기능들을 모아서 제공하는 것 Host - 네트워크에 접속한 컴퓨터를 의미한다. host에는 ip address가 부여되고 이를 친숙한 영어로 변환하는 것이 도메인이다. Port - IP 주소만으로 데이터를 주고 받을 수 있는게 아니다. 해당 서비스 내에서 웹 서비스 말고도 다른 다양한 서비스를 이용할 수 있기 때문에, IP 주소를 이용해 해당 서버에 도착은 할 수 있지만 해당 서버에 어떤 서비스, 어떤 프로그램에 데이터를 전달 해야할 지 결정을 못한다. 이 때 사용하는 것이 포트(Port)라는 개념이다. 해당 서버 내에 어떤 서비스에 데이터를 요청할 지, 혹은 전송할 지를 결정할 수 있다. 인터넷 브라우저에 도메인을 적으면 포트번호를 적지 ..

정규 표현식 - 메타 문자 : 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자 - 문자 클래스 [ ] 정규 표현식이 [abc]라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다. ex) "a"는 정규식과 일치하는 문자인 "a"가 있으므로 매치 "before"는 정규식과 일치하는 문자인 "b"가 있으므로 매치 "dude"는 정규식과 일치하는 문자인 a, b, c 중 어느 하나도 포함하고 있지 않으므로 매치되지 않음 cf) [ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위(From - To)를 의미한다. 예를 들어 [a-c]라는 정규 표현 식은 [abc]와 동일하고 [0-5]는 [012345]와 동일하다. - Dot( . ) 정규 표현식의 Dot(..

인터넷 != 웹 - 인터넷 : 컴퓨터와 컴퓨터가 연결되어 데이터를 주고 받을 수 있는 공간을 총칭. 인터넷 내에는 웹서비스, 파일 전송을 위한 FTP, 메일 시스템 등이 있다. - 웹 : 인터넷 내에서 데이터를 주고 받는 방법 중, 전세계적으로 가장 대표적인 것이 웹이다. IP Address - 수많은 서버 중 특정 서버에 접근할 때 필요한 주소 DNS(Domain Name System) - 사람이 인식하기 어려운 IP Address를 대신하여 언어로 표현한 Domain을 변환해주는 시스템 HTTP(HyperText Transfer Protocol) - 클라이언트와 서버 사이에 이루어지는 요청(Request)/응답(Response) 프로토콜이다. HTML(HyperText Markup Language) ..
동적 계획법( dynamic programming) - 문제를 잘게 쪼개 해결해 나가는 과정에서 반복되는 부분을 캐시에 저장하여 재사용하는 기법 - 분할정복과 문제를 작게 쪼깬다는 측면에서 공통점이 있지만 분할정복의 경우 부분문제들이 겹치지 않아 부분문제를 합병해 나가는 과정을 거치고 동적계획법은 반복되는 부분문제의 재연산을 피하기위해 캐시에 저장하는 메모이제이션(memoization)기법을 사용한다. - 참조적 투명성(referential transparency) : 함수의 반환 값이 그 입력 값만으로 결정되는지의 여부(전역변수, 입력 파일 등 함수 외부 요인에 의해 영향을 받지 않는 함수) - 메모이제이션은 참조적 투명 함수의 경우에만 적용할 수 있다. 입력이 같은데 외부 요소에 따라 다른 갑싱 반환..
- 가장 가까운 수 찾기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 # 정렬된 n개의 숫자 중 정수 m과 가장 가까운 값 찾기 # 재귀 없이 풀이 def findNum(n, m): # 시작 인덱스와 끝 인덱스 start = 0 end = len(n)-1 while True: mid = (start+end)//2 # 중간 값이 타겟과 같을 때 출력 if n[mid] == m : return n[mid] # 종료 조건, 요소가 2개만 남았을 때 차이가 작은 것 출력 elif end - start ..
- Total
- Today
- Yesterday
- 터틀비치#리콘#xbox#controller
- 미로 탐색#백준알고리즘#Python
- PassingCars#Codility#Python
- django#slicing
- Swift#Tuples#Range
- 쿼드트리#BOJ#분할정복#Python
- 섬의개수#백준알고리즘#Python
- API#lazy#
- 리모컨#완전탐색#BOJ#Python
- 나무자르기#BOJ#이분탐색#Python
- Distinct#Codility#Python
- 병든 나이트#BOJ#탐욕법#Python
- 날짜 계산#BOJ#완전탐색#Python
- 파이썬알고리즘인터뷰#4장
- django
- NumberofDiscIntersections#Codility#Sort#Python
- N으로 표현#DP#Programmers#Python
- filter#isalnum#lower
- Brackets#Stacks and Queues#Codility#Python
- 순열사이클#BOJ#Python
- 종이자르기#분할정복#BOJ#Python
- 토마토#백준알고리즘#Python
- 공유기 설치#BOJ#이분탐색#Python
- 반복수열#백준알고리즘#Python
- 백준 알고리즘#BackTracking
- 배열합치기#분할정복#BOJ#Python
- 랜선자르기#이분탐색#BOJ#Python
- Triangle#Sorting#Codility#Python
- 암호코드#dp#BOJ#Python
- 텀 프로젝트#백준알고리즘#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |