목록Python (10)
생각하는 감쟈
이분 탐색 - 오름차순으로 정렬된 배열을 반복적으로 반으로 나누어 target이 선택될 떄 까지 탐색하는 알고리즘 - 조건 : 반드시 오름차순으로 정렬된 상태에서 시작해야 한다 Olog(N) 반복문과 재귀 두 가지 방법을 사용할 수 있다 target : 찾고자 하는 값 data : 오름차순으로 정렬된 list start : data의 처음값 인덱스 end : data의 마지막 값 인덱스 mid : start, end 의 중간 인덱스 자료의 중갑 값(Mid) 차고자 하는 값인지 겁사 아니라며면 대소 관계를 비교하는 start, end 값 이동 동일 연산 반복 (재귀로 구현 가능) 자료의 중간 값이 찾고자 하는 값인지 비교 mid값이 target과 다트라면 대소관계를 비교하여 탐색 범위를 좁히고, tqrge..
백트래킹 - 해를 찾는 도중 막히면 더 이상 깊이 들어가지 않고, 이전 단계로 되돌아가서 해를 찾아나가는 방법 - 최적화 문제와 결정 문제를 푸는 방법 - DFS 등으로 모든 경우의 수를 탐색하는 과정에서 조건문 등을 걸어 답이 될 수 없는 상황을 정의하고, 그러한 상황일 경우에는 탐색을 중지시킨 뒤 그 이전으로 돌아가서 다시 다른 경우를 탐색하게 끔 구현가능 백 트래킹 vs DFS 백 트래킹 - 불필요한 탐색을 하지 않음 DFS - 모든 경우의 수를 탐색 빅오 표기법 - 런타임과 메모리 사용을 최소화 방법 O(1) constant time : for문 없이 바로 O(log n) log time : 이중 탐색 O(n) linear time : for문 O(n log n) log linear time : ..

그래프는 노드와 링크로 구성되어 있다. 깊이 우선 탐색(dfs, depth-first search) - 깊은 부분을 우선적으로 탐색하는 알고리즘 - 탐색 할때 특정한 경로를타고 밑바닥까지 내려간 후 막다른 길에 도착하면 다시 돌아와 다른 경로를 탐색 - 스택 자료구조 (FILO) 1. 모든 노드를 방문하고자 하는 경우에 이 방법을 선택 2. 깊이 우선 탐색이 너비 우선 탐색보다 좀 더 간단함 3. 검색 속도 자체는 너비 우선 탐색에 비해서 느림 너비 우선 탐색 (bfs, breadth-first search) - 최대한 넓게 이동한 다음 ,더 이상 갈 수 없을 때 아래로 이 - 가까운 노드부터 탐색하는 알고리즘 - 큐 자료구조를 이용하여 표현 된다 브루트 포스 브루트 포스는 완전 탐색 알고리즘 - 가능한..
8일차 (23.03.22) 팬시인덱스 : 정수배열 인덱스인덱스 배열의 원소 각각이 원래 ndarray 객체 원소 하나를 가리키는 인덱스 정수여야함a= np.array([11,12,13,14,15,16,17,18,19])idx = np.array([0,2,4,6,8])a[idx] array([11, 13, 15, 17, 19]) idx = np.array([0,1,0,0,2,2,8])a[idx] array([11, 12, 11, 11, 13, 13, 19]) 매칭되는 인덱스 값을 집어 넣음 위치에 있는 값을 출력하겠다 a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])a array([[ 1, 2, 3, 4], [ 5, 6, 7,..
7일차 (23.03.21) /Jupyter 실행 차이점)ctrl + enter : 출력은 나오는데 새로운 셀이 추가가 안됨alt + enter : 실행결과 나오면서 무조건 새로운 in[]셀이 추가됨shift + enter : 밑에 새롭게 셀이 추가 ,밑에 셀이 있을 경우 안 생김 이동만 됨셀 위치 변경 화살표로 이동 주석 처리 방법)cell - markdown : 주석 입력# ,## - # 사용할수록 글씨 작아짐> - 들여쓰기(?)tap - NUmPy(Numerical Python)1 제공빠르고 효율적인 다차원 배열 객체 ndarray배열 원소를 다루거나 배열 간의 수학 계산을 수행하는 함수디스크로부터 배열 기반의 데이터를 읽거나 쓸수 있는 도구파이썬 확장과 c, c++ 코드에서 Numpy의 자료구조에..

6일차 (23.03.20) '''타자게임'''import randomimport timedef play_game(): f = open("words.txt","r",encoding="utf-8") w = f.readlines() w = [line.rstrip('\n') for line in w] #\n 제거 number = 1 # 문제 넘버 count = 0 # 맞춘 문제 카운트 print("[타자 게임] 준비되면 엔터! 종료하고 싶으면 exit입력히세요.") input() # ENTER 시작 start_time=time.time() # 시간 시작 while True: question=random.choice(w) #단어 중 랜덤 선택(q..