개요 만약 두 코드가 같은일을 하고, 이 두 코드를 진행할 때 오류가 발생하지 않는다고 가정해 봅시다. 그렇다면 이중 어떤 코드가 좋은 코드다라는 것은 어떻게 알 수 있을까요? 당연히 더 빠르게 작동하고, 컴퓨터의 자원을 덜 소모하는 코드가 좋은 코드일 것입니다.
Priori 대부분 어떤 프로그램을 만들 때 우리는 어느정도의 배열이 적당한지 바로 알 수 없습니다. 예를들면 사용자와 인터페이스를 제공하는 프로그램이라면 사용자의 입력에 따라서 사용할 저장공간의 크기가 달라져야 할 수도 있겠죠. 뭐 프로그램을 짜기 시작할 때에도
ADT (Abstract Data Type) 이 방법으로 대표적인 방법에는 ADT, 추상 데이터 타입을 만드는 것이 있습니다. 우선 컴퓨터는 한번에 하나의 동작만 할 수 있습니다. 즉, 예를 들어 어떤 배열에서 가운데에 있는 원소를 빼고싶다고 생각해 봅시다. 그렇다면
Stack ADT Stack은 LIFO(Last-In First-Out)의 특성을 같는 저장 공간을 의미합니다. 이것은 프링글스 통으로 많이들 비유하는데요, 한쪽이 막혀있는 프링글스 통에 물건들을 집어 넣는다고 생각해 봅시다. 이때 이 물건들을 꺼낸다고 할 때 당
Queue ADT Queue는 FIFO(First-In First-Out)의 특성을 같는 저장 공간을 의미합니다. 이것은 Stack과 다르게 양쪽이 뚫려있는 프링글스 통으로 생각해보면 되겠습니다. 이때 양쪽의 역할은 입력과 출력으로 각각 정해져 있다고 생각합시다.
Deque ADT Deque는 Double Ended Queue를 뜻하는 단어입니다. 발음은 덱이라고 하는데요, Queue의 pop()과정인 Dequeue와 생긴게 비슷하죠? 위의 뜻에서도 알 수 있듯이 Deque는 front, rear의 양쪽 모두에서 각각 삽입과
자료구조의 종류 Sequential Data Structure() Hierarchical Data Structure(계층구조) Root Node: 부모가 없는 Node Leaf Node(External Node): 자식이 없는 Node Internal Node: 자식
first-in, Smallest-First-Outfirst-in, Largest-First-Out
자 이제 그럼 실제로 앞서 배운 ADT를 어디에 사용할 수 있는지 공부해 봅시다. Stack Case Study 먼저 Stack부터 살펴 봅시다. Stack은 그 특성상 주로 history를 이용해야 하는 문제들에서 사용되게 됩니다. 1) Parentheses M