"이것이 취업을 위한 컴퓨터 과학이다 with CS 기술면접" 책을 참고했습니다.1. 배열 & 연결리스트프로그래밍 언어를 기반으로 학습을 단 한 번이라도 해봤다면 익숙한 자료구조인 배열과 연결리스트다. 배열과 연결리스트는 상황에 따라서 다른 자료구조를 만드는 재료로도 활용되기 때문에 깊게 이해하는 것이 좋다. 차근차근 알아보자.1-1 배열배열(Array)이란 일정한 메모리 공간을 차지하는 여러 요소들이 순차적으로 나열된 자료구조를 의미한다. 각 요소에는 0부터 시작하는 고유한 순서 번호인 인덱스가 매겨지며, 이 인덱스를 기준으로 요소들을 식별할 수 있다. 다음과 같은 특징을 지닌다.특정 요소 접근 시간은 요소의 개수와 무관하게 일정한 O(1)이다. 인덱스만 찾아서 조회하면 되기 때문.앞에서부터 차례대로 ..
스택
문제 링크https://www.acmicpc.net/problem/10828문제 풀이 과정# 스택# 링크 : https://www.acmicpc.net/problem/10828from sys import stdininput = stdin.readlineclass Stack: def __init__(self): self.__stack = [] self.__size = 0 def empty(self): if not self.__stack: return 1 else: return 0 def size(self): return self.__size def push(self, item): ..
1. Stack이란?스택은 '쌓는다'라는 이름의 어원처럼 먼저 입력한 데이터를 제일 나중에 꺼내는 FILO(Last In, First Out)의 구조를 가진 자료구조를 의미합니다. 일상 생활에서도 많이 확인할 수도 있는 형태인데, 차례대로 쌓인 접시라던지 혹은 곽티슈에 담긴 휴지라던지 확인할 수 있습니다. 혹은 프로그램 내부에서도 이런 구조를 확인할 수 있는데 함수를 호출하게 되면 프로그램을 호출된 순서에 따라서 차곡차곡 저장하고, 함수가 종료될때마다 가장 나중에 호출된 함수부터 차례대로 해제됩니다.위 구조로 잘 이해가 가지 않는다면 아래와 같은 그림을 이해하면 더 쉽게 이해할 수 있습니다.. 예를 들어 어떤 데이터를 1, 2, 3 순서대로 넣었다면 가장 나중에 넣었던 3부터 차례대로 2, 1 순서로 꺼..