일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 트리란
- queryset
- render html
- HTTP
- request.GET
- CleanCode
- queryset filter
- 버블 정렬
- check ajax
- 클린코드
- 클린 코드
- Trre heap
- Django Ajax
- nginx
- reCAPTCHA V2
- 자료구조
- 정렬
- 클린코드-함수
- 포맷팅
- 선택 정렬
- 알고리즘
- Proxy_pass
- 효울적
- django 시작하기
- 글자 수
- 복수 외래키
- is_ajax() not working
- django
- request.path
- Djnago CSRF
- Today
- Total
목록분류 전체보기 (37)
Yang 코딩 공부

원소의 삽입 원소의 삭제 두 리스트 합치기 원소의 삽입 코드 구현 주의 사항 (1) 사입하려는 위치가 리스트 맨 앞일 때 prev 없음 Head 조정 필요 (2) 삽입 하려는 위치가 리스트 맨 끝일 때 Tail 조정 필요 (3) 삽입 하려는 리스트가 빈 리스트인 경우 def insertAt(self, pos, newNone) # pos가 옳바른 위치에 잇는가 if pos self.nodeCount + 1: return False # 첫 위치에 삽입하는 경우 if pos == 1: newNode.next = self.head self.head = newNode else: if pos == self.nodeCount + 1: prev = self.tail else: prev = self.getAt(pos -..
HTTP란 하이퍼텍스트 전송 프로토콜의 약자로 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜이다. 웹 브라우저와 웹 서버간의 통신을 위해 디자인되었지만 다른 목적으로도 사용 될 수 있다. HTTP는 클라이언트가 요청을 생성하기 위한 연결을 연 다음 다음 응답을 받을때 까지 대기하는 전통적인 클라이언트-서버 모델을 따르고 HTTP는 무상태 프로토콜이며, 이는 서버가 두 요청간에 어떠한 데이터(상태)도 유지하지 않음을 의미한다. 애플리케이션 레이어(응용 프로그램 계층) : OSI 7계층 중 7계층 클라이언트-서버 모델: 서버 라고 하는 리소스 또는 서비스의 제공자 와 클라이언트 라고 하는 서비스 요청자 간에 작업이나 워크로드를 분할하는 분산 애플리케이션 구조 무상태 프로토콜 ..
추상적 자료구조 (Abstract Data Structures) Data 예 : 정수, 문자열, 레코드, ... A set of operations 삽입, 삭제, 순회 ... 정렬,탐색 연결 리스트(Linked Lists) 연결 리스트는 "각 원소들을 줄줄이 엮어서" 관리하는 방식입니다, 이때 각각의 아이템(칸 하나)를 Node라고 부른다. Node는 담은 데이터도 가지고 있지만 다음 노드가 어디있는지 링크데이터도 가지고있다. 리스트는 무조건 맨앞을 알아야하고 그것을 Head라고 부른다. 또한 리스트의 맨 끝 원소를 Tail이라고 부른다. 연결 리스트 안에 노드가 총 몇개 있는지 알고 있는것도 좋을 것. ex 코드 class LinkedList: def __init__(self): # 비어있는 연결 리스..

알고리즘 복잡도란 해당 문제를 해결하는데 있어서 얼마나 많은 자원을 사용하는가를 나타낸다 이는 둘로 나뉜다 시간 복잡도 (Time Complexity) 문제의 데이타 크기와 이를 해결하는 데 걸리는 시간 사이의 관계 공간 복잡도 (Spzce Complexity) 문제의 크기와 이를 해결하는 데 필요한 메모리 공간 사이의 관계. 시간 복잡도를 알아 볼건데 이는 크게 둘로 나눈다. 평균 시간 복잡도 (Average Time Complexity) 임의의 입력 패턴을 가정했을 때 소요되는 시간의 평균 최악 시간 복잡도 (Worst-case Time Complexity) 가장 긴 시간을 소요하게 만드는 입력에 따라 소요되는 시간 복잡도를 흔하게 쓰는 표기법이 있는데 Big-O Notation 점근 표기법 (asy..

재귀 알고리즘 (recursive algorithms) - 응용 조합의 수 (n 개의 서로 다른 원소에 m 개를 택하는 경우의 수) 구하기 하노이의 탑 (크기 순서로 쌓여 있는 원반을 한 막대에서 다른 막대로 옮기기) 피보나치 순열 조합의 수 n 개의 서로 다른 원소에 m 개를 택하는 경우의 수 # 빠른 풀이 from math import factorial as f def combi(n,m): return f(n) / (f(m) * f(n-m)) 조합의 수 계산 - 재귀적 방법 특정한 하나의 원소 입장에서 볼 때, 이 해당 원소를 포함하는 경우와 그렇지 않은 경우를 따로 계산해서 더한다. def combi(n, m): if n == m: return 1 elif m == 0: return 0 else: ..
재귀 알고리즘 (recursive algorithms) - 기초 주어진 문제가 있을 때, 이것을 같은 종류의 보다 쉬운 문제의 답을 이용해서 풀 수 있는 성질을 이용하여 같은 알고리즘을 반복적으로 적용함으로 써 풀어내는 방법. 재귀함수 (recursive functions) 란? 하나의 함수에서 **자신을 다시 호출**하여 작업을 수행하는 것. EX) 이진 트리(binary trees) 자연수의 합 구하기(1부터 n까지 모든 자연수의 합을 구하시오) def sum(n): if n = 2: return solution(x-1) + solution(x-2)
배열 - 정렬 (sort)과 탐색 (search) 정렬과 탐색은 많은 응용에 적용되는 알고리즘들 중에서도 가장 널리 알려져 있으며 활용도도 높은 것이라고 할 수 있다. 정렬과 탐색을 위한 여러 자료 구조와 알고리즘들이 있지만, 간단하게 선형 배열을 대상으로 정렬과 탐색의 기초를 배워본다. 정렬(sort)이란? 복수의 원소로 주어진 데이터를 정해진 기준에 따라 새로 늘어놓는 작업. Python의 리스트(list)를 이용한다면, 직접 정렬 알고리즘을 구현할 필요가 없다. list에 내장된 정렬 기능이 있기 때문인데, 아래 와같은 같은 두 방법이 대표적이다. 파이선 내장 함수 sorted() 리스트에 쓸 수 있는 메서드 .sort() 정렬 순서 반대로 reverse = True L2 = sorted(L, re..
- 선형배열은 데이터들이 선(line) 처럼 일렬로 늘어선 형태를 말한다. 보통 프로그래밍에서 배열 (array) 이라고 하면 같은 종류의 데이터가 줄 지어 늘어서 잇는것을 뜻하고 python에서는 서로 다른 종류의 데이터 또한 줄세울 수 잇는 리스트(list) 데이터형이 존재한다. Python List에 활용할 수 있는 연산 리스트 길이와 관계없이 빠른 실행 결과를 보게되는 연산들 원소 덧붗이기 .append() 원소 하나를 꺼내기 .pop() 위 연산은 리스트 길이와 무관하게 빠르게 연산 됌. 리스트 길이에 비례 실행 시간이 걸리는 연산 원소 삽입 .insert() 원소 삭제 .del() 이런 연산은 리스트 길이가 길어질 수록 처리 시간이 증가. - 프로그래머스 어서와! 자료구조와 알고리즘은 처음이지..