전체 글 153

3강: 정렬(Sort), 탐색(Search)

강의 "정렬" 내장 함수는 2가지 종류가 있습니다. sorted() : 정렬된 새로운 리스트 sort() : 기존의 리스트 정렬 옵션을 이용해 다양한 기준으로 정렬할 수 있습니다. reverse : 역순 원소가 문자열인 경우 사전 순서에 따라 정렬합니다. 원하는 키를 지정하여 정렬의 기준을 설정할 수 있습니다. "탐색" 알고리즘은 선형 탐색과 이진 탐색이 있습니다. 선형 탐색 : O(n) 이진 탐색 : O(log n) 정렬이 되어 있거나 리스트의 크기가 큰 경우에는 선형 탐색보다 이진 탐색이 더 유리합니다. 3강 실습: 이진 탐색 구현해보기 ⭐ 직관적 풀이 : 리스트에 찾으려는 원소가 존재하는지 여부를 우선 확인한 후, index() 함수를 이용하는 방법! def solution(L, x): if x n..

2강: 선형 배열(Linear Array)

강의 배열은 원소들을 순서대로 늘어놓은 것입니다. python에서는 리스트를 이용하여 배열을 나타냅니다. 리스트의 index는 0부터 시작합니다. 리스트는 변형할 수 있습니다. 가장 손쉽게 할 수 있는 연산은 상수 시간 O(1)이 걸립니다. 원소 맨 뒤에 추가하기 : list.append() 마지막 원소 제거하기 : list.pop() 리스트의 크기에 의해 연산 시간이 선형 시간 O(n)으로 영향을 받기도 합니다. 원소 삽입하기 : list.insert() 원소 삭제하기 : list.del() index() 함수를 이용하면 원소의 위치를 찾을 수 있습니다. 2강 실습: (1) 리스트에 새로운 요소 삽입하기 ⭐ 직관적 풀이 : 원소를 맨 뒤에 삽입한 후 재정렬하는 방법! def solution(L, x):..

1강 : 안녕, 자료구조 & 알고리즘!

강의 첫 강의는 자료구조와 알고리즘을 왜 배워야 하는지 간단히 알아보았습니다. 자료형의 종류가 다양한 python에서 "자료구조"가 필요한 이유는 기본적인 자료형만으로는 해결되지 않는 경우가 존재하기 때문입니다. 한 리스트에서 가장 큰 값을 찾을 때, 값을 찾는 코드 자체는 쉽습니다. 하지만 리스트의 길이가 매우 커지면 시간이 굉장히 오래 걸립니다. 이러한 부분을 해결하는 것이 자료구조입니다. "알고리즘"은 주어진 문제를 해결하기 위해 자료구조와 연산 방법을 선택하는 것을 말합니다. 알고리즘 작성의 목적은 최적의 해법을 찾는 것입니다. 1강 실습: 리스트 원소 두 개의 합 구하기 ⭐ 리스트에 대해 index()를 사용할 수 있는지 확인하는 가장 기초적인 문제! def solution(x): return ..