Django에 들어가기 전에 간단하게 정리해야할 내용을 정리하고, 본문으로 들어가도록 하자. 이제 python, html, css 까지 했으면 back-end까지 할 수 있게 된다. front-end도 깊게 들어가지는 않았지만(javascript) 하나의 언어로 어느정도까지 개발 할 수 있는 거리까지 오지 않았을까 싶다. 단어만 들어도 어려워보이는 back-end... 해보자 참고로 Python은 3.9버전이다. Client(클라이언트)와 Server(서버) Client : 사용자 인터페이스를 통해 서버에 요청을 전송하고, 서버에서 받은 데이터를 사용자에게 표시하는 역할 : 서비스를 요청하는 주체 : Chrome 또는 Firefox와 같은 웹 브라우저 Server : 클라이언트로부터 요청을 받아 처리, ..
블로그 작성하다가 초기화 됐다.. 슬프다.. bit를 미루고 미루다가 부분집합 부분을 풀면서 내가 사용하는 방식이 시간초과가 자주 뜨길래 이제는 미룰때까지 미뤘다 생각하여 bit를 이용한 연산에 도전하려 한다. 잘하는 친구들 보면 이미 비트연산을 자유롭게 사용하던데(특히 코드에 시프트 연산자 >> 2 # 우측에서 2개가 제거된다 파이썬 코드로 Shift 연산자를 확인해보자. print(bin(0b1011 > 3)) # 0b101 num = 1 for i in range(5): print(bin(num), num, sep = ' : ') num = num
가장 처음 파이썬을 공부할 때 다른 친구들이 알고리즘 문제 풀고 있는것을 들었을때 무슨 전문용어마냥 'DFS로 푸는거야?' 이럴때부터 쫄아있던 단원이다. 굉장히 어려워보이는 단어처럼 보이지 않는가? 정답이다. 서론을 간단하게 풀자면 비선형구조인 그래프 구조는 그래프로 표현된 모든 자료를 빠짐없이 검색하는 것이 중요하다. 깊이 우선 탐색(DFS) 와 너비 우선 탐색 (Breadth First Search, BFS) 총 두가지 방법이 있으며 오늘은 DFS에 대해 알아볼 것이다. 깊이 우선 탐색(Depth First Search, DFS) : 시작 정점의 한 방향으로 갈 수 있는 경로가 있는 곳(가장 깊은 곳)까지 깊이 탐색해 가다가 더이상 갈 곳이 없게 되면, 가장 마지막에 만났던 갈림길 간선이 있는 정점으..
Recusion (재귀호출) : 필요한 함수가 자신과 같은 경우 자신을 다시 호출하는 구조. 얼마전에도 간단하게 Factorial을 예시로 다룬적이 있다. https://codinglarva.tistory.com/21 에서 확인 할 수 있다. 간단하게 더 설명하자면, 일반적인 호출 방식보다 재귀 호출 방식을 사용해 메모리, 시간을 줄이고 가독성이 더 좋게 작성이 가능하다. 이번엔 코드로 살펴보자 # 재귀함수를 이용한 피보나치 구현 def fibo(n): if n = 2 and memo[n] == 0: memo[n] = fibo(n-1) + fibo(n-2) # 재귀호출 형태 확인 return memo[n] # memo에 저장할 데이터 리턴하여 자동으로 넣는다. n = int(input()) memo = ..
이제 시작이다.. 여기서 부터는 알면 알수록 많은 풀이법을 생각 해낼 수 있고, 시뮬레이션이나 시간 복잡도를 개선하는 방식들이 있기 때문에 알고리즘 문제를 푸는데 실질적으로 도움이 많이 될 형태들이다. 가보자고. 스택 (=Stack) : 데이터를 후입 선출 구조 (LIFO : Last In, First Out 구조)이며 가장 최근에 들어온 데이터가 가장 먼저 빠진다는 개념이다. 실생활 예시로는 설거지한 컵들을 정리할 때, 가장 위에 있는 컵이 가장 먼저 사용될 것이고, 마지막 맨 아래의 컵은 마지막에 사용된다고 생각하면 좋을 것 같다. 스택에 저장된 데이터들은 선형 구조(데이터 간의 관계가 1대1 관계)의 특성을 띄고있다 스택에 데이터를 삽입하거나 스택에서 데이터를 빼낼 수 있다 스택을 프로그램에서 사용..
배열을 배우면서 느꼈지만, 문제들이 노가다와 창의력을 요하는 문제들이 나오곤 한다. 일일이 다 확인해서 코드를 짤 수도 있고, 신박한 방법으로 짧게 코드를 구현할 수도 있을 것이다. 아직 직감이 와서 문제를 푸는 단계는 아니기 때문에 최대한 정석으로 풀곤하는데, 정석으로 풀면서도 시뮬레이션하며 경우의 수를 따질 때가 많았다. 그러면 어떻게 문제에 접근하는지 알아보자. 잠깐. 아래 내용을 설명하기 위해 예시에 대한 문제를 먼저 설명하고 가는 것이 좋을 것 같다. Baby-gin Game 원래는 일반 트럼프 카드로 게임을 진행하는데, 쉬운 알고리즘 문제로 바꾸자면 중복이 가능한 0부터 9까지의 숫자 카드 중 임의의 6장의 패를 가지고 있을 때, 숫자가 연속된 3개(run)거나, 같은 숫자 3개(triple)..
드디어 걱정하든 단원까지 오게 되었다.. 이 단원부터 알고리즘의 시작이라고 할 수 있겠다. 물론 아직 쉬운 단계일지 몰라도 이를 알면서 좀 더 실생활적인 문제를 풀어나갈 수 있기 때문이다. 오늘은 1차원 배열을 위주로 살펴보려고 한다. 여기서 한단계 바로앞에 이차원 배열이 나오게 될텐데, 큰 기점이 될 기준이라고 생각한다. (이미 2차원 배열을 배우고 있으면서 너무 힘들었기 때문..) 그래도 힘내서 해보자. 배열 : 일정한 자료형의 변수들을 하나의 이름으로 재할당하여 사용하는 자료데이터 : 일일이 다른 변수명을 이용해 자료에 접근하는 것은 매우 비효율적이다. : 아래의 그림처럼 여러 변수를 배열을 통해 통합한다음 다양한 작업을 할 수 있다. 1차원 배열 1차원 배열의 선언 : 별도의 선언 방법을 필요로 ..
오늘 다룰 아이들은 작은 친구들이다. 큰 함수 단원에 속한 아이들이며 반드시 알아야 할 함수이니 천천히 배워보 재귀함수 유용한 내장 함수 어렸을때부터 재귀는 무서워했던 단어였다. 수학에서도 점화식 풀면서 싫어했고, 영어에서도 재귀대명사가 있을 정도니.. (영어는 정말 못한다) 원래 자리로 돌아온다라는 사전적의미를 갖고있지만 돌아가는건 항상 내 머리였다. 수학을 끝내서 더이상은 안볼줄 알았던 단어가 돌아오고 말았다. 아니 '재귀'라는 단어 자체도 너무 못생긴거아닌가..? 어떻게 이렇게 정이 안가는지 모르겠다. 또, 알고리즘 풀 때와 특정 함수를 정의할 때 반드시 필요하기 때문에 잘 알아야한다. 나중엔 stack 파트에서 재귀 호출도 나온다.. 재귀함수 : 함수 내부에서 자기 자신을 호출하는 함수 특정 알고..
Method 파트의 끝이 보인다. 평소에 보던 리스트나 튜블과 다르게 특이한 방식으로 데이터가 들어가있다. 자주 쓰이는 친구는 아니지만, 알고 있어야만 쉽게 풀 수 있는 알고리즘 문제들도 있고, 실제로 api로 클론 코딩을 진행할 때 javascript 등을 까보면 dictionary 형식으로 데이터가 저장되어 있기 때문에 문제에서 중요도가 낮아도 현업에서는 중요도가 높다는 것을 느끼고 있다. 지금까지 나왔던 데이터들의 method를 모두 외우진 못했지만 문제를 풀다보면 외워지지 않을까 싶다. 딕셔너리 Method : 고유한 항목들의 정렬되지 않은 컬렉션이다. 이전 시간에 그림까지 열심히 그려가며 다루었기 때문에 혹시나 기억이 나지 않는다면 https://codinglarva.tistory.com/14에..
오늘은 비교적 쉬운 주제인 집합에 대한 메서드를 배워볼 예정이다. 이전 데이터타입을 공부하면서 어차피 뒤에 메서드 관련내용이 나올거라며 어떠한 것이 있는지 크게 다루지 않았는데, 의외의 장점을 가지고 있기 때문에 알아두면 좋다. 세트 Method : 가장 중요한 내용은 정렬이 되지 않은 비 시퀀스. 순서도 없고 정렬도 없고 중복도 없다. 수학에서도 집합이라는 요소에 겹치게 되면 사라지지 않는가? 그것을 생각하면 편할 것 같다. Method 설명 s.add(x) 세트에 데이터를 추가. 중복되는 데이터라면 변동 없음 s.clear() list와 같이 내부 데이터를 모두 없애는 메서드 s.remove(x) 데이터를 제거한다. 해당 데이터가 없다면 Key error 발생 s.discard(x) 데이터를 제거한다..
- Total
- Today
- Yesterday
- Python
- 중복순열
- CodeTree
- dfs
- Django
- 함수
- 재귀
- Authentication System
- Method
- Sequence types
- 연산자
- HTML
- Serializer
- Database
- Python3
- vue
- 백준
- basic syntax
- baby-gin
- app
- ChatGPT
- vue3
- SQLite
- JavaScript
- 카운팅정렬
- SQL
- restapi
- views.py
- CRUD
- 순열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |