본문 바로가기

udemy77

Udemy : 알고리즘 탐욕법 탐욕법 매 순간마다 최선의 경우만 골라간다 다른 경우는 고려하지 않는다. 나중은 생각하지 않는다 모든 것을 보지 않기 때문에 완전탐색보다 빠르다 무엇이 최선인지 찾는게 포인트다 규칙을 찾는게 제일 좋다 시간 초과가 안 뜨게 되면 완전 탐색으로 문제를 풀어도 된다 하지만 시간 초과가 나면, 더 효율적인 알고리즘을 찾아야 한다 2023. 3. 10.
2. AWS IAM / CLI 2. AWS IAM / CLI AWS IAM Identity and Access Management 글로벌 서비스로, 모든 Region에서 사용을 할 수 있다 Root Account, Users, Groups Root Account 최고 관리자라고 생각하면 된다 모든 권한은 Root Account에 있고, Root Account에서 Users 또는 Groups를 만들 수 있다 Users 단체 내에 속한 사람들이다 유저들은 그룹으로 나뉠 수 있거나, 안 그래도 된다 유저들이 복수 그룹 안에 들어가는 것은 가능하다 Groups 유저들이 포함되어 있다 그룹 안에 그룹이 존재하는 것은 불가능 하다 IAM : Permissions 사용자 또는 그룹의 권한을 정의하는 것이다 유저나 그룹은 policies (정책)이.. 2023. 3. 8.
Udemy : 알고리즘 완전탐색 Udemy : 알고리즘 완전탐색 udemy 알고리즘 코딩 테스트 완전탐색 존재하는 모든 경우의 수를 탐색을 하며 결과를 도출해 낸다 장점 모든 경우의 수를 탐색하는 것이라서 반드시 답을 찾을 수 있다 단점 모든 경우의 수를 탐색하는 것이라서, 계산하는 시간이 느리다 브루트포스 완전 탐색 방법론을 사용하는 알고리즘이다 무차별 대입이라고도 한다 시간이 오래 걸려도, 답을 구할 수 있는 방법이라서, 많이 사용이 된다 순열 itertools from itertools import permutations from itertools import combinations 모든 경우의 수를 순서대로 살펴볼 때 용이하다 from itertools import permutations v = [0, 1, 2, 3] for i.. 2023. 3. 7.
Udemy : 알고리즘 자료구조 Udemy : 알고리즘 자료구조 udemy 알고리즘 코딩 테스트 배열 파이썬은 리스트를 사용한다 arr = [10, 11, 12, 13] arr[2] = 5 # output : [10, 11, 5, 13] 탐색 : O(1) 삽입/삭제 : O(N) 스택/ 큐 Stack = LIFO (Last In First Out) 리스트 안에 제일 마지막에 추가된 요소를, 제일 먼저 뺀다 즉 append를 통해서, 리스트 제일 마지막에 값을 넣는다 pop을 통해서 리스트 제일 마지막 요소를 빼낸다 맨 마지막에 요소를 추가하거나, 맨 마지막의 요소를 빼는 것이라서 삽입/삭제가 O(1) 이다 Queue = FIFO (First In First Out) 리스트 안에 제일 처음에 추가된 요소를, 제일 먼저 빼는 것 deque를.. 2023. 3. 2.
Udemy : Python Flask / 터미널 명령어 / `__name__` `__main__` Udemy : Python Flask / 터미널 명령어 / __name__ __main__ Udemy Python Flask 파이썬 기반 프레임워크다 장고보다 소규모의 웹 개발을 할 때에 사용한다 백엔드 클라이언트, 서버, DB, 세 요소가 맞물려 백엔드를 작동시킨다 클라이언트 브라우저를 이용하는 사용자 서버 사용자의 요청 사항을 받을 준비가 되어 있는 곳 DB 사이트의 모든 정보를 담아두는 곳이다 즉 클라이언트에서 서버로 요청을 보낸다 서버에서 클라이언트가 요청한 데이터를 찾아서 클라이언트에 응답을 해준다 Flask 시작하기 from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "Hello, Worl.. 2023. 2. 27.
Udemy - Javascript - Graph Traversal Udemy - Javascript - Graph Traversal Udemy JavaScript 그래프 순회 그래프에 있는 모든 노드들을 방문할 필요까지는 없다 그래프 순회를 할 때에는 visiting / updating / checking 이 중요하다 깊이 우선 그래프 (Depth First) vertex의 이웃 중 방문하지 않은 하나의 이웃으로 가는 것이다 이것을 모든 Vertex를 방문할때까지 순회를 한다 더 작은 이웃을 기준으로 깊이 우선 순회하기 넓이 순회 (Breadth First) 이웃된 노드가 2개면, 그 2개를 모두 순회하며 그래프를 순회한다 기본 그래프 만드는 코드 Graph 클래스에 DFS와 BFS를 넣을 것 class Graph { constructor(){ this.adjacenc.. 2023. 2. 27.
Udemy - Javascript - Hash Table Udemy - Javascript - Hash Table Udemy JavaScript 해시 테이블 해시 테이블은, key와 value의 집합들이다 해시 테이블의 key들은 정렬이 안 되어 있다 파이썬에서는 Dictionary로 불린다 배열과 달리, 해시 테이블은, 요소를 찾을때, 삭제할 때, 새로운 요소를 추가할 때에 매우 빠르다 속도 때문에 해시 테이블을 많이 사용한다 해시 함수 key를 index같이 활용하고, value를 buckets 안에 넣는 것이다 key를 넣을때마다, key는 buckets의 특정 인덱스에 넣어지게 된다 2023. 2. 23.
Udemy - Javascript - Binary Heaps Udemy - Javascript - Binary Heaps Udemy JavaScript 이진 힙 MaxBinaryHeap : 부모 노드가 항상 자식 노드보다 크다 MinBinaryHeap : 부모 노드가 항상 자식 노드보다 작다 이진 힙은 항상 오른쪽과 왼쪽의 자식 노드를 채운다 MaxBinaryHeap 에서는 루트 노드가 제일 커야 한다 각 노드는 최대 2개의 자식을 가지고 있다 같은 층에 있는, 자식들은 부모 노드보다 작거나 큰거지, 서로의 관계는 상관이 없 인덱스 0의 자식은 1, 2 인덱스 1의 자식은 3과 4 인덱스 2의 자식은 5와 6 인덱스 3의 자식은 7, 8 즉 인덱스 n의 자식 노드를 구할 때에는 왼쪽 노드는 2n + 1 오른쪽 노드는 2n + 2 반대로 부모 노드를 구할 때에는 (.. 2023. 2. 22.
Udemy - Javascript - Tree Traversal Udemy - Javascript - Tree Traversal Udemy JavaScript 트리 순회 너비 우선 탐색 (Breadth First Search, BFS) Queue를 사용한다 [10, 7, 15, 5, 8, 20] 위의 리스트의 순서대로 탐색을 한다 class Node { constructor(value){ this.value = value; this.left = null; this.right = null; } } class BinarySearchTree { constructor() { this.root = null; } insert(value) { var newNode = new Node(value) if (this.root === null) { this.root = newNode; .. 2023. 2. 21.