본문 바로가기

분류 전체보기

(181)
TIL-231007(자료구조 & 알고리즘 4주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 4주차 강의 듣기 알게 된 점❗ [ 퀵소트 ] 퀵소트(Quicksort) 분할 정복(Divide and Conquer)을 통해 주어진 배열을 정렬하는 알고리즘이다. 배열에서 기준(pivot)을 잡고, 기준보다 값이 작은 집합과 큰 집합으로 나눈다. 그리고 그 사이에 기준을 위치시킨다. 작은 집합과 큰 집합을 대상으로 재귀호출하여 정렬한 뒤 결과를 합치면 정렬된 배열을 얻을 수 있다. def quicksort(lst, start, end): def partition(part, ps, pe): pivot = part[pe] i = ps - 1 for j in range(ps, pe): if part[j] = end: return N..
TIL-231006(자료구조 & 알고리즘 4주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 4주차 강의 듣기 이력서 수정하기 알게 된 점❗ 정렬 데이터를 순서대로 나열하는 방법 버블 정렬(Bubblesort) 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세번째 자료를, 세번째와 네번째를, ... 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식이다. 작은 숫자, 큰 숫자 순서로 있으면 내버려두고 큰 숫자, 작은 숫자 순서로 있으면 둘의 위치를 변경하면 된다 선택 정렬(Selectionsort) 선택해서 정렬!! 1단계 : [4, 6, 2, 9, 1] 4와 6과 2와 9와 1을 차례차례 비교합니다. 그 중 가장 작은 1과 맨 앞 자리인 4를 교체합니다! [1, 6, 2, ..
TIL-231005(자료구조 & 알고리즘 3주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 3주차 강의 듣기 항해 커리어톤 참여 이력서 수정하기 알게 된 점❗ [ 이진 탐색 트리 ] 부모 기준 왼쪽에는 작은 값, 오른쪽에는 큰 값을 가지는 이진 트리 평균적으로 탐색의 시간복잡도는 O(logN). 치우친(skewed) 경우 O(n). 따라서 균형이 중요 자가균형 이진탐색 트리는 AVL, 레드블랙 트리 등이 있다. 자바의 해시맵이 체이닝 시 연결리스트와 함께 레드블랙 트리를 병행해 저장한다. [ 이진탐색의 효율성 ] 이진탐색 배열이 정렬되어있을 경우, 절반식 줄여나가면서 탐색하는 기법 이진탐색의 효율성 1억개 목록을 선형탐색할 때, 1억 번을 연산해야 한다. 이진탐색으로 찾는다면, 27번안에 찾을 수 있다. 이진탐색을 위..
TIL-231004(자료구조 & 알고리즘 3주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 3주차 강의 듣기 이력서 수정하기 알게 된 점❗ [ 트리 ] 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료구조 비선형 구조는 선형구조와는 다르게 데이터가 계층적 혹은 망으로 구성되어 있다. Queue와 Stack은 자료 구조 중 선형 구조라고 함! 선형구조는 자료를 구성하고 있는 데이터들이 순차적으로 나열시킨 형태를 의미한다. 선형구조와 비선형 구조의 차이점은 형태뿐만 아니라 용도에서도 차이점이 많다. 선형구조는 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있고, 비선형 구조는 표현에 초점이 맞춰져 있다. 트리에서 나오는 용어들! Node: 트리에서 데이터를 저장하는 기본 요소 Root Node: 트리..
TIL-231003(자료구조 & 알고리즘 2주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 2주차 강의 듣기 알게 된 점❗ [ 트리의 표현 방법 ] 트리 연결되어 있는 정점과 정점간의 관계를 표현할 수 있는 자료구조 자료구조는 크게 비선형구조, 선형구조로 구분된다. 선형구조 : 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있다. 비선형구조 : 표현에 초점이 맞춰져 있다. 노드(Node) : 연결 관계를 가진 각 데이터를 의미. 정점(Vertex)이라고도 함. 간선(Edge) : 노드 간의 관계를 표시한 선. 인접 노드(Adjacent Node) : 간선으로 직접 연결된 노드(또는 정점) 유방향 그래프(Directed Graph) : 방향이 있는 간선을 갖는다. 간선은 단방향 관계를 나타내며, 각 간선은 한 방향으로만 진..
TIL-231002(자료구조 & 알고리즘 2주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 2주차 강의 듣기 알게 된 점❗ [ 최대 힙 ] Heap(힙) 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리 항상 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있도록 하는 자료구조 부모 노드의 값이 자식 노드의 값보다 항상 커야 한다. 그렇게 되면 가장 큰 값은 모든 자식보다 커야 하기 때문에 가장 위로 간다. 따라서 최대의 값들을 빠르게 구할 수 있다. 최댓값이 맨위인 힙을 Max Heap, 최솟값이 맨 위인 힙은 Min Heap이라고 한다. - 이진트리와는 다르게 좌, 우 자식의 위치가 대소관계를 반영하지 않는다. - 계산 편의를 위해 인덱스는 1부터 사용한다. 최대 힙 - 삽입 알고리즘 합의 규..
WIL-2023/9월 (5) 2023.09.25. ~ 2023.10.01. 📝이번주 목표 1. 실전프로젝트 - 코드리팩토링 2. 자바의 정석 스터디 3. 이력서 수정하기 4. 기술면접 스터디 ✍🏻이번주 목표 달성 여부 ✅ 실전프로젝트 - 코드리팩토링 ✅ 자바의 정석 스터디 ✅ 이력서 수정하기 ✅ 기술면접 스터디 💡알게 된 점 총정리(TIL회고) 이번주는 추석연휴가 길어서 너무 해이해지지 않도록 매일 프로그래머스 코딩테스트 문제 풀기를 하고, 자료구조 및 알고리즘 강의를 들었다. 자료구조 알고리즘 강의를 들었는데, CS지식이 많이 부족하다는 것을 느꼈다.. 정말 공부는...끝이....없는것 같다................. 🎯다음주 목표 1. 실전프로젝트 - 코드리팩토링 2. 자바의 정석 스터디 3. 기술면접 스터디 4. 이력서 수..
TIL-230930(자료구조 & 알고리즘 1주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 1주차 강의 듣기 알게 된 점❗ [ 연결 리스트 ] Array & LinkedList Array LinkedList 특정 원소 조회 O(1) O(N) 중간에 삽입 삭제 O(N) O(1) 데이터 추가 데이터 추가 시 모든 공간이 다 차버렸다면 새로운 메모리 공간을 할당받아야 한다 모든 공간이 다 찼어도 맨 뒤의 노드만 동적으로 추가하면 된다. 정리 데이터에 접근하는 경우가 빈번하다면 Array를 사용하자 삽입과 삭제가 빈번하다면 LinkedList를 사용하는 것이 더 좋다. 연결리스트의 구현 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next..