본문 바로가기

전체 글

(172)
스택(Stack) - 괄호 괄호의 알맞은 짝을 찾을 때 스택을 이용하면 편리하다. (), [], {} 같은 유형의 괄호들이 사용 되어야 하고 쌍을 이루어야 한다. 다음 3가지 조건을 맞추어 구성되어야 한다. 조건 1 : 왼쪽 괄호의 개수와 오른쪽 괄호의 개수는 같아야 한다. 조건 2 : 같은 타입의 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다. 조건 3 : 서로 다른 타입의 괄호 쌍이 서로를 교차하면 안된다. 괄호 검사 프로그램 구현 #include #include #include #define MAX_STACK_SIZE 100 typedef int Element; Element data[MAX_STACK_SIZE]; int top; void error(char str[]) { printf("%s\n", str); ex..
스택(Stack) 스택(Stack) 가장 먼저 입력된 데이터가 맨 아래에 쌓이고 가장 최근에 입력된 데이터가 가장 위에 쌓이는 구조 후입선출(LIFO) init() : 스택을 초기화 is_empty() : 스택이 비어있으면 TRUE 아니면 FALSE 반환 is_full() : 스택이 가득 차 있으면 TRUE 아니면 FALSE 반환 size() : 스택 내의 모든 요소들의 개수 반환 push(x) : 주어진 요소 x를 스택의 맨 위에 추가 pop() : 스택 맨 위에 있는 요소를 삭제하고 반환 peek() : 스택 맨 위에 있는 요소 삭제하지 않고 반환 배열을 이용한 스택 구현 #include #include #define MAX_STACK_SIZE 100 typedef int Element; Element data[MAX..
백준 문제 풀이 10797번 - Python Date = input() CarNumber = input().split(" ") count = 0 for i in CarNumber: if Date == i: count += 1 print(count)
연결리스트(LinkedList) 우리는 배열을 사용하여 데이터를 저장할 수 있고 꺼내 쓸 수도 있습니다.하지만 처음부터 배열의 크기를 너무 크게 사용할 경우 메모리 공간이 효율적으로 사용되기 어렵습니다.예를들어 우리에게 필요한건 5개만 저장 할 수 있는 공간인데 1000개를 저장할 수 있는 배열을 선언할 필요는 없습니다.하지만 자료구조를 구현할 때 정확하게 몇개의 저장공간이 필요한지 알 수 있다면 좋겠지만 그렇지 않은 경우가 더 많습니다. 배열 기반 연결리스트 구현 #include #include #include int arr[1000]; int count = 0; void addBack(int data) { arr[count] = data; count++; } void addFirst(int data) { for (int i = co..