array 2

TIL_Array와 LinkedList(Algorithm)

Array와 Linked List에 대해 정리해 보았다. Array 접근 쉬움, 삽입 어려움, Python의 list. 특정 원소 조회: O(1) 중간에 삽입, 삭제: O(N) 공간이 다 차면 새로운 메모리 공간을 할당받아야 함 LinkedList 접근 어려움, 삽입 쉬움, 직접 구현. 특정 원소 조회: O(N) 중간에 삽입, 삭제: O(1) 공간이 다 찼어도 맨 뒤의 node만 동적을 추가하면 됨 결론 데이터에 접근하는 경우가 빈번할 때는 Array, 삽입과 삭제가 빈번하다면 LinkedList 사용. LinkedList의 구현 code class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class L..

TIL_Algorithm

오전에 첫 번째 Algorithm 특강을 들었다. 알고리즘이란, 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법이다(구글 검색 결과). Computational thinking이 프로그래밍이나 알고리즘 문제를 풀 때 뿐만이 아니라 다른 분야 혹은 일상 생활 속에서 컴퓨팅 사고를 하는 것은 많은 도움이 된다. 좋은 알고리즘의 기준으로 공간 복잡도와 시간 복잡도가 있다. 공간 복잡도 프로그램을 실행 및 완료하는데 필요한 저장 공간의 양, 컴퓨터 저장공간의 기술 발달로 그렇게 중요하지는 않음. 시간 복잡도 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간. - 빅오메가(Big-Ω): 최선의 경우 - 빅세타(Big-Θ): 평균(중간) - 빅오(Big-O): 최약의 경우 배열의 길이만큼 순회를 해야 함..

LIST