본문 바로가기

STL5

BOJ 10828 스택 문제 링크 : https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 요약 스택을 이용해서 주어지는 명령어의 결괏값을 출력 풀이 스택을 선언해준후 주어진 명령어가 주어졌을 때 조건문을 통해 스택 기본 함수들을 실행한다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #inc.. 2022. 3. 21.
그래프(Graph) 현실 세계의 사물이나 추상적인 개념 간의 연결관계를 표현한 것 일반적이고 강력한 자료구조 정점(Node or Vertex)과 간선(Edge or Branch)으로 구성 G=(V, E)로 표현 가능 , V: 정점 집합 / E: 간선 집합 주요 용어 정리 경로 Path 끝과 끝이 서로 연결된 간선들을 순서대로 나열한 것 단순 경로: 경로 중 한 정점을 최대 한 번만 지나는 경로 의미(일반적) ex) A --> E로 가는 경로 A --> B --> E A --> B --> C --> E A --> B --> D --> E 사이클 cycle 시작한 점에서 끝나는 경로 a.k.a. ‘회로’ 단순 사이클: 같은 정점을 두 번 이상 방문하지 않는 사이클 (일반적 / 시작점 제외) ex) 단순 사이클 A --> B -.. 2022. 3. 11.
벡터(Vector) Vector는 동적 배열 구조를 구현한 것으로 맨 끝에서만 삽입 삭제가 일어나는 구조이다. 동적으로 크기가 변하고 메모리가 연속적이기 때문에 자동으로 배열의 크기를 조절할 수 있고 유연하게 객체의 추가 및 삭제가 가능하다는 일반 배열과의 차이점을 보여준다. 어떻게 사용하는가? #include // vector를 포함하고 있는 헤더파일 vectorv; // vector의 크기를 정하지 않았을 경우 선언법(다른 자료형도 가능) vectorv(10); // vector의 크기를 정한 경우 선언법 ex)크기 10 vectorv(10,1); // 크기를 10으로 정하고 데이터를 전부 1로 초기화하는 경우 선언법 v[idx]; // 벡터 v의 idx번째의 원소를 참조한다. v.front(); // 벡터 v의 첫번째.. 2022. 3. 11.
덱(Deque) 디큐 혹은 덱이라고 부르며 쉽게 설명하면 스택(Stack) + 큐(Queue)인 구조라고 생각하면 된다. 스택 + 큐 구조 (엄밀히 말하면 아님) 앞과 뒤 2방향에서 원소를 삽입하거나 삭제할수 있다. 여러 메모리 블록에 나뉘어 저장된다. 어떻게 사용하는가? #include // dequeue가 포함된 헤더파일 deque dq; // int형 덱 선언, 다른 자료형을 넣어도 됨 dq.push_front(x); // 덱에 데이터 x를 앞에서 입력한다. dq.pop_front(); // 덱의 데이터를 앞에서 삭제한다. dq.push_back(x); // 덱에 데이터 x를 뒤에서 입력한다. dq.pop_back(); // 덱의 데이터를 뒤에서 삭제한다. dq.size(); // 덱의 크기를 반환한다. dq.em.. 2022. 3. 11.