본문 바로가기

유데미79

Udemy : 알고리즘 이분 탐색 Udemy : 알고리즘 이분 탐색 udemy 알고리즘 코딩 테스트 이분 탐색 하나 하나 다 찾는 것이 아닌다 (완전 탐색으로 매우 오래 걸린다) Up & Down 게임이라고 생각하면 된다 정답을 기준으로, 무작위로 고른 숫자가 정답 숫자가 무작위로 고른 숫자 기준으로 더 작은지, 또는 큰지 말해주는 것이다 예) 정답 7 10을 말하면 Down 5를 말하면 Up 즉 값들을 정렬하고, 정렬한 값들 중에 중간 값을 기준으로 탐색을 하는 것이다 예) 1,2,3,4,5,6,7,8,9,10 중 8 찾기 먼저 5를 탐색한다, 7은 5보다 크기 때문에 6~10 중 숫자들을 찾는다 6~10 의 중간값은 8 from bisect import bisect_left, bisect_right array = [0, 1, 2, 3.. 2023. 3. 14.
Udemy : 알고리즘 DFS, BFS, 백트래킹 Udemy : 알고리즘 DFS, BFS, 백트래킹 udemy 알고리즘 코딩 테스트 그래프 자료구조 그래프는 노드와 링크로 이루어진 자료구조다 노드는 점들이고, 노드를 이어주는 링크, Edge 또는 간선이라고 한다 SNS / 메신저 관계도를 그래프로 만들 수 있다 지도 / 네비게이션 같이 그래프를 실생활에 사용될 수 있다 무방향 또는 방향 그래프로 만들 수 있다 무방향이나 양방향 그래프는 동일한 개념이다 트리 자료구조 순환성이 없는 무방향 그래프다 코드를 그래프로 나타날 때에는 인접 리스트와 행열을 만들 수 있다 연결 행 연결 리스트 DFS (Depth First Search) 깊이 우선 탐색 스택 또는 재귀를 사용해서 구현을 한다 DFS는 완전 탐색이다 BFS (Breadth First Search) 너.. 2023. 3. 13.
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.