추상 자료형(ADT) 추상 자료형에 대해서 이야기 해보겠습니다. 자료구조를 처음 공부할 때, 추상 자료형이라는 용어를 처음 들었습니다. 그 당시에는 좀 생소한 용어라서 이해가 잘 되지 않았지만 이것 저것 공부를 하다보니 이 개념을 자연스럽게 받아들일 수 있었습니다. 추상 자료형 또는 ADT(Abstract Data Type)라고도 부릅니다. 일반적으로는 컴퓨터 공학에서 주로 사용되는 용어입니다. 간단히 말해서 추상 자료형은 어떤 기능들에 대해서 나열한 것입니다. 단, 추상 자료형에서는 기능들에 대한 세부적인 구현에 대해서는 이야기 하지 않습니다. 사실 처음 이 말을 보면, 어떤 의미인지 크게 와닿지는 않을 겁니다. 저 또한 그랬습니다. (바로 이해가 되신다면...축하드립니다.) 추상 자료형(ADT)의 예..
컴퓨터/자료구조
Stack(스택) 자료구조 구현언어 : C/C++ 사용한 IDE : 비주얼 스튜디오 스택은 먼저들어온 데이터가 가장 나중에 나가는 형태의 자료구조입니다. 반대로 말하면 가장 나중에 들어온 데이터가 가장 처음으로 나가게 됩니다. 이러한 자료구조를 LIFO(Last in first out)라고도 말합니다. 스택 형태 상상해보기 스택은 한쪽이 막혀있는 통의 형태입니다. 통속에 무언가를 넣었을 때 한쪽이 막혀있기 때문에, 처음에 넣은 것을 빼려면 위에 쌓여 있는 다른 것들을 다 빼야 합니다. 아래는 예시 그림입니다. 예를 들어서 위의 그림처럼 한쪽이 막혀있는 통에 숫자가 적혀있는 네모를 1->2->3 순서대로 넣었을 때, 통속에 있는 상자를 다시 빼려면 3->2->1 순으로 나오게 됩니다. 용어 설명 스택의 A..
알고리즘이란 어떤 일이나 문제를 해결하기 위한 절차나 방법이다. 같은 결과를 도출하지만, 문제를 어떤 방식으로 해결했는가에 따라서 좋은 알고리즘과 그렇지 못한 알고리즘으로 평가할 수 있다. 예를 들어서, 1부터100까지 더하는 문제가 있다고 가정해보자. 이 문제를 2가지 방식으로 해결해보겠다. 1)단순 계산. 말 그대로 1부터 100까지 차례대로 더하는 방법이다. 풀이) 1 + 2 + 3 +…+ 100 = 5050 더하기 연산을 99번 해야 한다. 2) 수학적인 방법 아래 공식을 이용할 것이다. 풀이) 100(100+1)/2 = 5050 연산 3번만에 답을 찾아냈다. 위의 2가지 방법은 같은 5050이라는 결과가 나왔지만, 연산을 하는 횟수에서 큰 차이가 있다. 같은 결과를 얻는데 어떤 방법을 선택하는 ..