기본 사용법은 다음과 같다. dict.get(key, default = None ) 보통 dict 이라고 표현한 딕셔너리는 우리가 흔히 아는 key 와 value 로 이루어진 객체다. 다음과 같은 예를 보자. a = { 'banana': 1500, 'melon': 9000} 위와 같은 딕셔너리(dict) 가 있다고 하면, get() 메소드...
[Algorithm][Python] 딕셔너리 객체의 get() 메소드 사용법
[Algorithm][Python] 이진탐색 (Binary Search)
1. 이진 탐색 ( Binary Search) 이란? 탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방법 이진 탐색의 이해 (순차 탐색과 비교하며 이해하기) [저작자] by penjee.com 이미지 출처 보편적으로 Sequential 보다 빠르게 찾을 수 있다. 한번의 탐색으로 찾아야 할 ...
[Algorithm][Python] 병합 정렬 (merge sort)
1. 병합 정렬 (merge sort) 재귀용법을 활용한 정렬 알고리즘 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병하낟. 직접 눈으로 보면 더 이해가 쉽다:...
[Algorithm][Python] 퀵 정렬 (quick sort)
1. 퀵 정렬 (quick sort) 이란? 정렬 알고리즘의 꽃 왜 꽃이냐> 왜 이게 정렬에 좋은것일까? 기준점 (pivot) 을 정해서, 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right) 으로 모으는 함수를 작성 각 왼쪽, 오른쪽은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을...
[Algorithm][Python] 백준 문제입력 형식
[백준][python] 문제 입력 형식 정리 파이썬을 공부하면서 처음으로 백준에 들어가 문제를 풀게 되었다. 뭔가 ui가 조잡해 보이지만, 있을건 다 있는 것 같았다…? 문제를 보고 코드를 작성하려는데 아예 빈 스크립트가 나오고, 버튼은 딸랑 ‘제출’ 한개… 프로그래머스 처럼 대충 함수를 작성하고 제출을 눌렀더니 오류만 좌르륵 뜬다. 아무리봐도 ...
[Algorithm][Python] 동적 계획법(Dynamic Programming)과 분할정복(Divide and Conquer)
동적 계획법(Dynamic Programming) 과 분할 정복 (Divide and Conquer) 어떠한 문제를 접근할 때( 결국 알고리즘이지 뭐..) 적용할 수 있는 방법 중 하나이다. 문제를 빠르게 이해하고, 어떤 방식을 적용해야 좋은지 알아야 푸는데 걸리는 시간을 줄일 수 있다. 외운다기 보다는 이해하면 문제해결 능력이 더 올라갈 것이다. ...
[Algorithm][Python] 재귀호출 (recursive call)
재귀호출 (recursive call) 1. 재귀용법 함수 안에서 동일한 함수를 호출하는 형태 여러 알고리즘 작성시 사용되므로 익숙해져야 함. 2. 재귀 용법 이해 예제 팩토리얼을 구하는 알고리즘을 Recursive Call 을 활용해서 알고리즘 작성하기 팩토리얼의 경우, n부터 1까지의 곱셈이라고 볼 수 있다. 로직은 알...
[Algorithm] 공간 복잡도
참고 : 공간 복잡도 왜 알아야 할까? 실제 알고리즘 구현시에는, 기능 작동도 물론 중요하지만 얼마나 효율적인지도 그만큼 중요하다. 요즘같은 대용량 시스템 같은경우에는 공간 복잡도 보다는 시간 복잡도가 우선으로 생각되겠다. 저번 프로젝트에서처럼 많은 서버로의 req 와 res 가 발생하고, forEach, map 같은 무거운 순회함수가 실행되는 ...
[Algorithm] 버블정렬 vs 선택정렬 vs 삽입정렬
버블정렬 인접한 원소끼리 비교하여 교환하는 방식 셋 중에 제일 느리지만 단순함 선택 정렬 최솟값을 찾아서 맨 앞으로 이동하는 방식 버블 정렬보다 좋음 삽입 정렬 앞에서부터 ...
[Algorithm][Python] 삽입정렬 (insertion sort)
삽입정렬 (insertion sort) 1. 삽입 정렬 (insertion sort) 란? 삽입 정렬은 두 번째 인덱스부터 시작 해당 인덱스(key 값) 앞에 있는 데이터(B) 부터 비교해서 key 값이 더 작으면, B 값을 뒤 인덱스로 복사 이를 key 값이 더 큰 데이터를 만날때까지 반복,그리고 큰 데이터를 만난 위치 바로뒤에 ke...