본문 바로가기

책 요약 정리

(6)
7장_ 배열 요약 정리 배열 : 메모리 공간 기반의 연속 방식의 기본 자료형으로 , 고정된 크기만큼의 연속된 메모리 할당이다. 두 수의 합 : 덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하는 문제 def twoSum(self, nums: List[int], target: int) -> List[int]: for i, n in enumerate(nums): complement = target-n if complement in nums[i+1:]: return [nums.index(n),nums[i+1:].index(complement)+(i+1)] in을 이용한 탐색 : in의 시간 복잡도 O(n)이고 전체 시간 복잡도는 O(n^2) 비교나 탐색 대신에 한 번에 정답을 찾을 수 있는 방법 def twoSum(se..
6장_문자열 조작 요약 정리 팰린드롬: 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 단어 또는 문장을 의미한다. isalnum() : 영문자 , 숫자 여부를 판별하는 함수 def isPalindrome(self, s:str)->bool: strs: Deque = collections.deque() for char in s: if char.isalnum(): strs.append(char.lower()) while len(strs)>1: if strs.popleft() != strs.pop(): # popleft() O(1) ,pop(0) O(n) return False return True 자료형을 데크로 선언하여 시간 단축한 문제풀이 코드 def isPalindrome(self, s:str)->bool: s = s.l..
5장 _ 리스트, 딕셔너리 요약정리 리스트 : 순서대로 저장하는 시퀸스, 변경 가능한 목록을 말한다. 입력 순서가 유지되며, 내부적으로는 동적 배열로 구현되어 있다. 연산 시간복잡도 설명 len(a) O(1) 전체 요소의 개수 리턴 a[i] O(1) 인덱스의 i의 요소 가져오기 a[i:j] O(k) i~j 까지 슬라이스 길이만큼 k개의 요소를 가져온다. i in a O(n) i 요소가 존재하는지 확인한다. 처음부터 순차 탐색하는 경우이다. a.count(i) O(n) i 요소의 개수를 리턴한다. a.index(i) O(n) i 요소의 인덱스를 리턴한다. a.append(i) O(1) 리스트 마지막에 i 요소를 추가한다. a.pop() O(1) 리스트 마지막 요소를 추출한다. 스택 연산 a.pop(0) O(n) 리스트 첫번째 요소를 추출한다..
4장_빅오,자료형 요약정리 빅오란? 입력값이 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기방법 , 점근적 실행 시간을 표기할 때 널리 쓰이는 방법이다. 시간 복잡도와 공간 복잡도를 표현하는데 쓰인다. 알고리즘은 보통 "시간과 공간이 trade-off 관계"이다. 점근적 실행시간 = 시간 복잡도 시간 복잡도: 어떤 알고리즘을 수행하는데 걸리는 시간을 설명하는 계산 복잡도 O(1) : 입력값이 아무리 커도 실행시간은 일정하다. 최고의 알고리즘 but 상수값이 너무 클 경우 의미가 없으므로 신중하게 써야 한다. Ex) 해시 테이블의 조회 및 삽입 (11장) O(log n): 입력값만큼 실행시간이 영향을 받지만 , 웬만한 n의 크기에 대해서 매우 견고하다. Ex) 이진검색(18장) O(n): 알고리즘에 수행하는 데 걸리는 시간이 ..
3장_파이썬 요약정리 3장_ 파이썬 인덴트 : PEP 8 -> 공백 4칸을 원칙으로 한다. (깔끔한 코드를 위한 초석) foo = long_fuction_name(var_one, var_two, var_three.var_four) 첫 번째 코드에 파라미터가 있다면, 파라미터가 시작되는 부분에 보기 좋게 맞추기 def long_fuction_name( var_one, var_two,var_three var_four): print(var_one) 첫 번째 줄에 파라미터가 없다면, 공백 4칸 인덴트를 추가 -> 다른 행과 구분 스네이크 케이스(Snake Case) : 각 단어를 밑줄(_)로 구분하여 표기하는 것 타입 힌트(Type Hint) : 함수의 파라미터에 어떠한 타입을 주어야 하는지 표기하는 것 def fn(a): ... ..
1장(머신러닝에 대한 개념학습) 요약 정리 머신러닝이란 데이터로부터 "학습"할 수 있는 시스템을 만드는 것이다. 학습이란 작업에서 주어진 성능지표를 더 나아지게 하는 것을 의미한다. 머신러닝이 도움이 될 수 있는 문제 유형 4가지는 1. 명확한 해결책이 없거나 복잡한 유형 2. 수작업으로 만든 규칙리스트를 대체할 경우에 해당하는 유형 3. 변화하는 환경에 적응 하는 시스템을 만들어야 할 유형 (Ex) 주식?) 4. 사람에게 통찰을 제공할 유형 (ex) "데이터 마이닝") 데이터 마이닝이란 대용량의 데이터를 기반으로 보이지 않는 패턴을 찾는 것 머신러닝의 도전과제는 부족한 양, 낮은 품질, 대표성 없는 : 데이터. 과소 적합 과대 적합된 모델이다. 과대 적합 : 훈련 데이터에 있는 잡음에 비해 모델이 너무 복잡할 때 일어난다. 해결책 - 1. 샘플..