일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- androidstudio
- bitmap
- BOJ
- Canvas
- CS
- Database
- DBeaver
- DP
- Ecilpse
- Eclipse
- firebase
- git
- github
- GooglePlayServices
- gradle
- IDE
- IntelliJ
- java
- json
- kotlin
- level2
- linux
- mariadb
- MYSQL
- Paint
- permission
- python
- Sorting
- sourcetree
목록Algorithm (77)
will come true
구조적 프로그래밍(structured programming) 하나의 입구와 하나의 출구를 가진 구성 요소만을 계층적으로 배치하여 프로그램을 구성하는 방법. 단축 평가(short circuit evaluation) 논리 연산의 식 전체를 평가한 결과가 왼쪽 피연산자의 평가 결과만으로 정확해지는 경우 오른쪽 피연산자의 평가를 수행하지 않는 것. (ex : ||에서 왼쪽이 true, &&에서 왼쪽이 false) 드모르간 법칙(De Morgan's laws) 각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건과 같다. x && y와 !(!x || !y)는 같다. x || y와 !(!x&&!y)는 같다. 자료구조 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하..
선택 정렬 / 재귀 / 퀵정렬 / 해시테이블 => 이전 글에서 작성함. 너비 우선 탐색 가중치가 없는 균일 그래프에서 최단 경로를 계산하는 데 사용 방향 그래프 (=사이클) 무방향 그래프 다익스트라 알고리즘 그래프의 간선에 가중치(weight)를 준 가중 그래프(weighted graph)에서 최단 거리를 계산하는 데 사용 모든 가중치가 양수일 때만 정상적으로 동작. 음의 가중치를 가진 간선이 있으면 다익스트라 알고리즘은 사용 불가. => 벨만-포드 알고리즘을 사용해야 함. ※ 일단 어떤 정점을 처리하면 그 정점에 도달하는 더 싼 경로는 존재하지 않아야 하기 때문에 가격이 가장 싼 정점, 즉 도달하는 데 시간이 가장 적게 걸리는 정점을 찾는다. 이 정점의 이웃 정점에 대해 현재의 가격보다 더 싼 경로가 ..
재귀(Recursion) 함수가 자기자신을 호출하는 것. 재귀 함수는 무한 반복에 빠질 위험有. 재귀를 멈추기 위한 기본 단계가 필요함. 재귀 단계 : 함수가 자기 자신을 호출하는 부분. 기본 단계 : 함수가 자기 자신을 호출하지 않는 경우 (=재귀를 반복하다가 마지막으로 기본 단계에 도달) def countdown(i): print(i) if(i 재귀 단계 return list[0] + sum(list[1:])문을 타고 재귀를 반복하다가, sum(list[1:]) 호출 시 전달되는 리스트가 공란일 경우 if list == [] 조건에 걸려서 0을 리턴 (함수 실행 후 최초로 값 반환) => 기본 단계 기본 단계에서 반환 받은 값은 직전 재귀에서 실행된 return list[0] + sum(list[1:..
같은 성격의 값을 여러 개 저장할 때는 배열 또는 리스트를 사용한다. 배열(Array) 배열의 항목은 모두 이웃하는 위치에 저장 삽입 시 배열 크기 만큼의 연속된 공간이 필요 모든 요소는 같은 자료형이어야 함 (int, float, string 등) 항목을 삽입하거나 삭제할 시 기존 데이터의 메모리 주소도 연쇄적으로 변경해야 함 index를 이용해 특정 번째의 데이터에 접근 용이 속도 : 읽기↑/ 삽입·삭제↓ 연결 리스트(Linked List) 리스트의 항목은 이웃하는 위치에 저장되지 않고, 각 항목이 다음 항목의 주소를 가리키고 있음 항목을 삽입하거나 삭제할 시 기존 데이터가 가리키는 주소값만 변경해주면 됨 하나의 요소는 다음 요소의 주소만을 가지고 있기 때문에, 특정 번째 요소에 접근하기 위해서는 앞..
정렬된 리스트에서 사용할 수 있는 알고리즘들 단순 탐색 리스트에 존재하는 요소들과 아이템을 하나씩 차례대로 비교하며 찾고자 하는 대상을 찾는 방식. 비교 아이템과 일치하는 요소를 찾을 때까지 반복. 한 번의 연산으로 하나의 요소가 비교 대상에서 제외됨 단순 탐색 알고리즘 (Python) #list내에서 item을 탐색하여 index값을 반환해주는 함수 def simple_search(list, item): for i in range(0, len(list)): guess = list[i] if guess == item: return i return None my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(simple_search(my_list, 6))#5 print(s..