본문 바로가기

분류 전체보기34

17. 스택(Stack)과 큐(Queue) 자료구조는 특징이 있는 정보를 메모리에 효율적으로 저장 및 반환하는 메모리 구조를 가지는 저장 공간(체계)으로, 데이터를 관리하는 방식이다. 예로, 이름이 성만 기억난다고 했을 때, 그 사람을 전화번호부에서 찾는다고 가정하자. 전화번호부에서 데이터를 사람이 빠르게 찾으려면(=효율적으로 찾으려면) ㄱ,ㄴ,ㄷ 순으로 배열이 되어 있다면 무작위로 저장되어 있는 것보다 빠르게 접근이 가능해진다. 이러한 자료구조는 리스트, 스택, 큐, 튜플, 세트, 딕셔너리, collections 모듈 등이 있다. 그중 스택에 대해 알아볼 것이다. 스택의 정의 스택은 마지막에 들어간 데이터가 가장 먼저 나오는 형태로 데이터의 저장 공간(체계)을 구현한다. 스택에서 데이터를 저장하는 것을 푸시(push), 데이터를 추출하는 것을 .. 2022. 2. 6.
16. 자료구조 - 자료구조의 이해 프로그래밍을 하면 다양한 데이터를 마주한다. 이러한 데이터의 특징을 고려하여 저장하는 방법을 자료구조(data structure)라고 한다. 자료구조는 특징이 있는 정보를 메모리에 효율적으로 저장하고 관리한다. 그렇다면 Python에서의 자료구조는 어떨까? 앞에서 배운 리스트도 이에 해당되며, 이외의 자료구조는 아래 6개로 나뉜다. 스택(stack) : 나중에 들어온 값을 먼저 나갈 수 있게 해주는 자료구조 (last in first out) 큐(queue) : 먼저 들어온 값을 먼저 나갈 수 있도록 해주는 자료구조 (first in first out) 튜플(tuple) : 리스트와 같지만, 데이터 변경을 허용하지 않는 자료구조 세트(set) : 데이터의 중복 허용없이, 수학의 집합 연산을 지원하는 자료.. 2022. 1. 30.
15. 리스트(List) 4 - 다양한 리스트 알고리즘 기본적인 리스트 연산자에 대해 앞에서 배운 내용으로 코딩이 가능한가? 최솟값, 최댓값 알고리즘 최솟값 또는 최댓값을 찾는 알고리즘은 다음과 같다. 1. 리스트의 요소를 순서대로 하나씩 꺼낸다. 2. 첫번째 요소를 최솟값 또는 최댓값이라고 정하고 해당 값을 저장한 후, 다음 값마다 첫번째 값을 비교한다. 3. 구하는 값이 최솟값이라면, 첫번째 요소 값 보다 두번째 요소 값이 작다면, 최솟값을 두 번째 요소 값으로 바꾼다. 4. 이를 끝까지 진행한다. 1) 최솟값, 최댓값을 찾는 일반적인 알고리즘을 구현해라. 탐색(Search) 탐색(search)는 컴퓨터가 가장 많이 하는 작업 중의 하나이다. 많은 탐색 방법중 순차 탐색(sequential search)는 탐색 방법 중 간단하고 직접적인 탐색 방법이다. .. 2022. 1. 30.
14. 리스트(List) 3 - 리스트 함축(list comprehensions) 리스트 함축과 집합의 관계 리스트 함축은 수학자들이 집합을 정의하는 것과 유사하다. 수학에서 제곱합의 집합은 아래와 같이 나타낸다. 이를 해석해보자면, x의 제곱값들이 존재하는데, 이 x값은 자연수에 속한다 라는 의미이다. 다음 식이 있다고 하자. 이를 파이썬으로 나타내면 아래와 같다. s = [x**2 for x in range(10)] s의 결과는 1부터 10까지의 정수값들의 제곱합이 된다. range(10)에 속하는 모든 정수에 대해 x를 제곱하여 리스트를 생성하라는 결과가 된다. * 참고로 ∈는 영어로 표현하면 in 이다. 리스트 함축 형식 함축이라는 의미는 무엇을 함축 시켰다는 의미일까? 다음 함수를 보자. new_list = [] for in old_list : if filter(i) : ne.. 2022. 1. 30.