Eat Study Love

먹고 공부하고 사랑하라

파이썬독학 12

Review 6 - Python Search(Linear / Binary) & Sort(Selection / Insertion)

https://eglife.tistory.com/72 Review 5 - Python OOP(Objected Oriented Programming)https://eglife.tistory.com/68 Review 4 - Python File I/Ohttps://eglife.tistory.com/67 Review 3 - Loop & Set,Tuple,Dictionaries,Mutabilityhttps://eglife.tistory.com/66 Review 2 - Python의 기본 Module , Classhttps://eglife.tistory.com/65 Review 1 - Pyeglife.tistory.com 머리 박고 달리자~ 이번엔 파이썬 Search다. 이 이후로 내용이 째끔 머리 복잡할듯 헌데..

SW 만학도/Python 2024.07.05

13. Data Structures (Trees)

https://eglife.tistory.com/38 12. Data Structures ( Stacks & Queues ) https://eglife.tistory.com/30 11. Data Structures ( Arrays & Linked Lists ) 본격적인 자료구조에 대한 공부! Python에서 list를 겁~나게 다뤘는데, 사실 이 List는 고마운 친구였다는 것이다. 그 고마운 List의 내부구조 eglife.tistory.com 슬 복잡해지는 자료구조 지금껏 배웠던 자료구조는 Linear하다면 이제는 non-Linear한 Case도 슬슬 나온다. Tree의 정의 - Tree / Subtree의 Recursive한 구조이다. - Node = Vertex = 꼭지 - Root : Paret..

SW 만학도/Python 2024.03.25

11. Data Structures ( Arrays & Linked Lists )

본격적인 자료구조에 대한 공부! Python에서 list를 겁~나게 다뤘는데, 사실 이 List는 고마운 친구였다는 것이다. 그 고마운 List의 내부구조를 톺아보자 ㅠㅠ List가 [1,2,3,4,5] 만 있던 메모리 공간이 있는데 중간에 insert, del 그리고 마지막칸에 메모리가 차 있는데 append를 어떻게 하는지에 대한 궁금증을 해소해야 한다! 별로 안 궁금한데 해소를 해야 한단다..ㅎ 어떤 상황에서 어떤 자료구조를 써야 DATA / MEMORY를 효율적으로 쓸 수 있는지를 알기 위하여 자료구조를 배운다. Arrays - 연속된 n개의 자료를 Memory box에 저장한 구조이다. ex) Python의 List - Array의 특징 - Fixed integer length(N) : Init..

SW 만학도/Python 2024.03.18

10 - 1 . Recursion으로 Sort 코드 + Merge Sort 구현해보기

참.. Sorting이라는 것이 원리를 설명으로 들을 때는 이해가 되는데 이걸 코드로 Implement 하는 게 되게 어렵다. 그리하여 Sort 코드를 직접 다시 한 번 쳐보기로 한다. 근데 이게 코드를 치면서 느끼는게, 한 번 코드가 눈에 익어버리니까 내가 뭔가 창의적으로 코드를 한다는 느낌보단 외워서 친다는 느낌이 더 든다 ㅋㅋ;;; 이러나 저러나 어떻게든 도움이 되겠지~ 라는 마인드로 그냥 공부해보자 # insertion sort lst1 = [1,-10,5,0,32,-100,99,-8,-7.7,3] lst2 = [-5,-4,-1,-3,4,0,19,1] ​ def inse(list) -> None : for i in range(1,len(list)): val = list[i] j = i-1 whil..

SW 만학도/Python 2024.03.18

10. Sorting Algorithms

지난 번 Linear / Binary Searching 외에도 코딩공부 시 중요한 알고리즘 중 하나인 Sorting에 대해 학습해봅시다. Sorting --> 말 그대로 내림 or 오름차순으로 list 안에 data를 정렬한다는 것이다. 총 4가지 Sorting을 배워봅시다. Insertion Sort - 제일 쉬운 버전의 Sorting이다. - Main Idea 1) 처음엔 비어있는 Empty list에서 시작한다. 2) Pile에서 Data들을 하나씩 가져와 크기순으로 Empty list에 하나씩 정렬시켜 저장한다. 3) 정렬된 새로운 list가 output으로 나오게 되는 구조 --> 메모리효율을 위해 in-Place로 이것을 진행하기도 한다. 4) 위의 3번의 경우, 단점은 원본이 보존되지 않는다..

SW 만학도/Python 2024.03.18

9-2 . Recursion으로 Binary Search의 여러가지 Case 코딩해보기

1) Binary Search 에서 List 는 이미 Sort 되어 있지만 찾고자 하는 Value가 Duplicate 되어 있을 때 - Middle을 찾았을 때 Term만 좀 While문으로 만져주면 될 거 같다. - Recursion으로도 구현할 수 있을 거 같긴 한데.. 일단 While문으로! Recursion을 이용해서도 해당 코드를 구현해보았다. 다소 조잡한 감이 있어도 코드는 잘 돌아가서 다행이다..ㅎㅎ 특이점으론, Recursion 함수를 잘 만들어 놓고 해당 함수를 binary_search에 넣었을 때 자꾸 무한루프를 돌면서 코드가 버벅거렸다. 이유를 찾아보니.. recursion함수를 binary_search에서 사용할 때에도 return을 이용해서 사용해야 하는데 그냥 함수만 Call해서..

SW 만학도/Python 2024.03.17

9-1 . Binary Search의 여러가지 Case 코딩해보기

1) Binary Search 에서 List 는 이미 Sort 되어 있지만 찾고자 하는 Value가 Duplicate 되어 있을 때 - Middle을 찾았을 때 Term만 좀 While문으로 만져주면 될 거 같다. - Recursion으로도 구현할 수 있을 거 같긴 한데.. 일단 While문으로! https://eglife.tistory.com/27 낄끼빠빠~ Recursion 구현글 첨부 9-2 . Recursion으로 Binary Search의 여러가지 Case 코딩해보기 1) Binary Search 에서 List 는 이미 Sort 되어 있지만 찾고자 하는 Value가 Duplicate 되어 있을 때 - Middle을 찾았을 때 Term만 좀 While문으로 만져주면 될 거 같다. - Recursi..

SW 만학도/Python 2024.03.17

9. Computational Complexity & Searching (Big O with Search/Sort in Python)

프로그램을 돌리는데 시간이 얼마나 소요될 지에 대한 공부이다. 일일히 모든 시간을 다 측정할 수 없으니 Programming에선 자잘한 거 빼고 큰 단위 N으로 Time Complexity를 계산한다. -ex) Linear_search / Selection_sort Linear_Search # Linear Search에서 Timex Complexity 계산해보기 ​ def linear_search(lst:list,value:int) -> int : for i in range(len(lst)): if lst[i] == value: return i return -1 ​ lst = [0,1,4,5,-1,6,100] print(linear_search(lst,9)) print(linear_search(lst,5..

SW 만학도/Python 2024.03.17

8. Object-oriented Programming in Python

OOP가 뭘까? 굉장히 중요하다던데 내가 지금껏 정리한 Python은 Procedural Programming이다.(Module/Class 제외) Procedural Programming 이란? -->변수선언, 자료구조선언, 함수선언 등을 하고 이것들을 사용 OOP란? - A programming paradigm that relies on the concept of classes and objects - Class --> 청사진 Blueprint , Object --> Instance들 in class - ex) students.append("MARCUS") , students.clear() - 즉, Class 다루는 것! 좀 더 Module화 된 Programming을 하자 - Combine a gro..

SW 만학도/Python 2024.03.15

7. File I/O in Python

실제로 Data를 가지고 프로그램을 만들 때, 코드에 모든 것을 넣진 않는다. 대신 File을 Disk에 저장 후 프로그램이 이것을 읽거나 쓸 수 있도록 한다. 이번엔 Jupyternotebook이 아닌 Google Colab에서 코딩을 해봤당. 구글 Colab에 구글 Drive를 위와 같이 연결하고 Colab Notebooks 폴더에 Text파일을 집어 넣어서 테스트좀 해보려함 Opening a File - 아래와 같이 외부파일을 읽어본다 - File을 Open했으면 끝에는 Close 해줄 것 --> Memory 쓸 데 없이 차지하는 것 방지용 file = open('textfile.txt','r') contents = file.read() file.close() print(contents) -----..

SW 만학도/Python 2024.03.15