일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IPV4
- network
- 밑바닥부터 시작하는 딥러닝
- 기본 정렬
- 네트워크 관리사 2급
- ICQA
- Machine learning
- 네트워크 관리사
- 딥러닝
- 알고리즘
- Protocol
- Django
- Python
- Algorithm
- deep learning
- 패스트캠퍼스
- 머신러닝
- 서브넷마스크
- 프로토콜
- 자료구조
- Dynamic Programming
- dns
- 실기
- 네트워크 자격증
- Windows Server
- 파이썬
- 네트워크
- 자격증
- 코딩테스트
- FTP
- Today
- Total
목록전체 글 (57)
쳉지로그
Django Project 만들기 1. startproject # Documents/airbnb-clone/ django-admin startproject config 2. 바깥 config 폴더 이름을 Aconfig로 변경 3. 안에 있는 config 폴더와 manage.py 파일을 바깥으로 빼낸 후 Aconfig 삭제 ⚠️ Aconfig로 바꾸지 않았다면 안에 있는 config를 꺼낼 수 없음! Django App 만들기 🔔 Project = Application의 집합 / Application = Function의 집합 ⚠️ 거대한 앱으로 만들지 말 것! Divide and Conquer Example ) room app → room 생성, 검색, 삭제, 수정, 리뷰 보기, ... (X) user ..
병합 정렬(Merge Sort) 재귀 용법을 활요한 정렬 알고리즘 리스트를 반으로 나눠 비슷한 크기의 두 부분 리스트로 분할 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병 """ 병합 정렬 구현 코드 """ def merge(left, right): merged_list = list() l_point, r_point = 0, 0 # Case 1. left, right 둘 다 있는 경우 while len(left) > l_point and len(right) > r_point: if left[l_point] > right[r_point]: merged_list.append(right[r_point]) r_point += 1 else: merged_..
동적 계획법(DP, Dynamic Programming) 입력 크기가 작은 부분 문제들을 해결한 후, 해당 부분 문제의 해를 활용하여 보다 큰 크기의 부분 문제를 해결. 최종적으로 전체 문제를 해결하는 알고리즘 상향식 접근으로, 가장 최하위 해답을 구한 후 이를 이용해서 상위 문제를 풀어가는 방식 문제를 잘게 분할할 때, 부분 문제는 서로 중복되어 재활용됨 Memoization 기법 사용 (참고) 분할 정복이란? 문제를 나눌 수 없을 때까지 각각 나누어서 풀고, 다시 합병하여 문제의 답을 얻는 알고리즘 하향식 접근 방법 (일반적으로 재귀 함수로 구현) 문제를 잘게 분할할 때, 부분 문제는 서로 중복되지 않음(ex. 병합 정렬, 퀵 정렬) 예시) 피보나치 수열 # recursive call 사용 def f..
11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net Solution 가장 적은 경우의 수부터 직접 해본 후, 점화식을 세우는 것이 핵심! # 0. 사용자 입력 n = int(input()) # 1. 빈 리스트 생성 dp = [0] * 1001 # 2. 초기값 세팅 dp[1] = 1 dp[2] = 2 # 3. 점화식 for i in range(3, 1001): dp[i] = dp[i-1] + dp[i-2] # 4. 출력 (방법의 수를 10,007로 나눈 나머지) print(dp[n] % 10007)
재귀 용법(Recursive Call, 재귀 호출) 함수 안에서 동일한 함수를 호출하는 형태 파이썬에서는 재귀 함수 깊이가 1000 이하가 되어야 한다, 종료 조건이 항상 있어야 한다, ⚠️ 재귀 용법 사용 시 주의할 점! 파이썬에서는 재귀 함수 깊이가 1000 이하가 되어야 한다, 종료 조건이 항상 있어야 한다, 재귀 함수는 내부적으로 스택처럼 관리된다. 재귀 용법의 일반적인 형태 """ 일반적인 형태 1 """ def function_1(입력): if 입력 > 일정값: # 입력값이 일정 값 이상이면 return function(입력 - 1) # 입력값보다 작은 값 else: return 일정값, 입력값, 또는 특정값 # 재귀 호출 종료 """ 일반적인 형태 2 """ def function_2(입력)..
선택 정렬: 다음과 같은 순서를 반복하며 정렬하는 알고리즘 주어진 데이터들 중, 최솟값을 찾음 해당 최솟값을 데이터 맨 앞에 위치한 값과 교체 맨 앞의 위치를 뺀 나머지 데이터를 동일한 방법으로 반복 """ 선택 정렬 구현 코드 """ def selection_sort(data): for stand in range(len(data) - 1): lowest = stand for i in range(stand+1, len(data)): if data[lowest] > data[i]: lowest = i data[lowest], data[stand] = data[stand], data[lowest] return data - 반복문이 두 개 이므로 시간 복잡도 : O(n^2)
Bubble? Pipenv? Do not install Django globally! ⇒ Install in Bubble pip 전역 설치 이후 pipenv를 써서 버블 만들기! Step 0. Python 설치 Download Python The official home of the Python Programming Language www.python.org ⚠️ Mac 유저 : python 2 삭제 금지!!! 위 링크말고 brew를 이용해서 설치하는 것 권장 ⚠️ 설치 시 "Add Python 3.x to PATH" 꼭 선택하기 ( ⇒ pip 자동 설치 ) Step 1. pipenv 설치하기 pip install --user pipenv ⚠️ For macOS : brew install pipenv 또..
삽입 정렬: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 두 번째 인덱스부터 시작함 """ 삽입 정렬 구현 코드 """ def insertion_sort(data): for i in range(len(data) - 1): for j in range(i+1, 0, -1): if data[j] < data[j-1]: data[j], data[j-1] = data[j-1], data[j] else: break return data - 반복문이 두 개 이므로 시간 복잡도 : O(n^2)