본문 바로가기

Review57

[WEEK01] 복잡도 & 점근법 복잡도 (complexity) 점근적 표기 알고리즘의 수행시간을 표기하기 위해, 필수적인 부분에 집중하고 불필요한 상세들은 무시 점근적 표기법 종류 O-표기 : 상한 표기법 : 점근적 상한만 알고 있을 때 사용하는 표기법 ⇒ 최악의 경우에도 이 기준을 넘지 않음 : 임의의 n값에 대해 크기 n인 특정 입력이 선택되더라도 수행시간이 O(n^2)임을 뜻함 : 최악의 경우 수행시간이 O(n^2)이라는 뜻 : n의 오더 또는 오더 n : O는 order의 머리글자 (initial) 세타표기 : 점근적으로 어떤 함수의 위와 아래를 한계지음 오메가 표기 : 점근적 하한만 알고 있을 때 사용하는 표기법 ⇒ 아무리 빨라도 이 기준보다 빠를 수 없음 시간복잡도(time complexity) : 실행하는데 필요한 시간 평.. 2022. 9. 26.
[WEEK01] 검색 알고리즘 (선형검색 / 이진검색) + 트리자료구조 [Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] 개념 정리 1) 선형 검색 : 무작위로 늘어놓은 데이터 집합에서 검색 수행 : linear search / sequential search(순차검색)으로 불림 종료조건 1) if i == len(a) 성립시 스캔종료 종료조건 2) if a[i] == key 성립시 스캔종료 보초법 (sentinel method) : 검색할 값을 배열의 맨 끝에 추가 종료조건 1) if i == len(a) 성립시 스캔종료 (보초법에서는 필요없음) 종료조건 2) if a[i] == key 성립시 스캔종료 (for문 마지막에 체크해서 맨 끝 값과 같으면 false) 2) 이진 검색 : 원소가 오름차순이나 내림차순으로 정렬된 배열에서 좀 더 효율적으로 검색가능.. 2022. 9. 26.
[WEEK01] 함수의 인수와 매개변수 / 객체의 복사 [Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] 개념 정리 1) 함수의 인수와 매개변수 def func(n): print(func(n)) call by object reference 파이썬에서 인수전달은 실제 인수인 객체에 대한 참조를 값으로 전달하여 매개변수에 대입하는 방식 값에 의한 호출 (call by value) : 실제 인수값을 매개변수에 복사하는 값에 의한 호출 참조에 의한 호출 (call by reference) : 실제 인수의 참조를 매개변수에 복사하여 매개변수가 실제 인수와 같아지는 참조에 의한 호출 매개변수와 실제 인수 실행시점 : 매개변수는 실제인수와 같은 객체 참조 함수에서 매개변수 변경시 1) 인수가 immutable : 매개변수 변경시 다른 객체 생성, 그 객.. 2022. 9. 25.
[WEEK01] 배열과 자료구조 (python) [Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] 개념 정리 1) 배열 Python에서 List, Tuple (a.k.a. Data Container) 특징 : 묶음 단위로 값을 저장 : 하나하나는 원소라 부름 : 서로 다른 자료형을 같이 저장 가능 : 배열 원소 자체를 배열에 저장 가능함 1-1) 스캔 : 배열 원소를 하나씩 차례로 주목하여 살펴보는 방식 (traverse) cf) 리스트 스캔하는 방법 1) 원소 수를 len(함수)로 미리 알아내서 range로 2) enumerate( ) 함수 사용 3) 인덱스 x, in 사용 => 처음부터 순서대로 꺼냄 1-2) 주석, 자료형 hint ; annotation from typing import Any, Sequence def max_o.. 2022. 9. 25.
[WEEK01] 파이썬 개념 개인적으로 모르거나 헷갈렸던 부분들을 정리 1) 공백을 넣어서 출력하기 list_a = ['a', 'b', 'c', 'd'] # 1번 ' '.join(list_a) # a b c d # 2번 for x in list_a: print(x, end=' ') # a b c d 2) 소수점 자리 강제로 입력 '%.3f'%숫자 : 소수점 3번째까지 표시 & str로 변환 3) Docstring? class, module, function, method 정의시 사용되는 python documentation string ; 개발된 기능 사용 혹은 개발에 기여하는 다른 개발자 이해를 돕기 위해 작성되는 주석 4) end, sep 옵션 (print에서) end : 기본값은 줄바꿈 : end = " " ; 줄바꿈 x & .. 2022. 9. 25.
[WEEK01] 특별한 과제 20대 청년시절을 열심히 살아왔다. 가끔은 넘어지거나 쓰린 기억들도 있었지만 많은 경험들을 해보려고 노력해왔다. 개인적인 성공과 실패, 인정과 실수들 속에서 많은 것을 배우고 성장했다. 감사하게도 주변의 많은 도움이 있어 그런 기회들을 가질 수 있었던 것 같다. 대학 졸업 무렵 software 교육을 받고 싶었으나 개인적인 사정으로 포기하고 졸업과 동시에 한 대기업에 입사하게 되었다. 열심히 일한만큼 좋은 성과들이 주어졌다. 하지만 시간이 갈수록 회사가 요구하는 방향과 내가 원하는 삶의 방향이 다르다는 것을 느끼게 되었다. 둘 중 하나를 선택해야만하는 시기가 찾아왔다. 나는 안정을 버렸고 내 삶을 선택했다. 넘어지더라도 조금이라도 젊었을 때 더 도전해보는 것이 좋을 것이라 생각했다. 회사를 나온 후 하루.. 2022. 9. 24.