본문 바로가기

algorithm/basis

(13)
자료구조 : 문자열 1. 문자열의 정의 스트링(string)이라고도 한다. 이러한 기호는 미리 정의된 집합이나 음소 문자에서 선택한다. 프로그래밍에서 문자열은 일반적으로, 요소가 문자 인코딩과 관련된 문자를 대표하는 일련의 자료값을 저장하고 있는 자료형으로 이해할 수 있다. 여기서 문자 인코딩의 경우 더 일반적인 배열 자료형과 차이가 있다. 이러한 환경에서 'binary string'과 'byte string'이라는 용어는 저장된 자료가 반드시 텍스트를 표시하지 않아도 되는 문자열을 표시하는 데 사용된다. 문자열 자료형으로 선언된 변수의 경우, 미리 정의된 어느 정도의 기호를 소유할 수 있는 메모리에 기억 자료를 할당하는 것이 보통이다. 문자열이 소스 코드에 보이면 그 문자열을 string literal이라고 일컫는다. 대..
자료구조 : 덱(deque) 1. 덱의 정의 덱(deque, double-ended queue)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다. 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생 시킬 수 있다. 큐와 스택을 합친 형태로 생각할 수 있다. 양 끝에서만 데이터를 넣고 양 끝에서 뺄 수 있는 자료구조 2. 덱의 함수 push_front : 덱의 앞에 데이터를 넣음 push_back : 덱의 뒤에 데이터를 넣음 pop_front : 덱의 앞에서 데이터를 뺌 pop_back : 덱의 뒤에서 데이터를 뻼 front : 덱의 가장 앞에 있는 데이터 back : 덱의 가장 뒤에 있는 데이터 3.덱의 구현 스택과 큐를 합친것과 같음 4.덱 관련 문제 풀이 백준 10866번 덱 : https://www.ac..
자료구조 : 큐(queue) 1. 큐의 정의 큐(queue)는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다. 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다. 한쪽 끝에서만 데이터를 넣고 다른 한쪽 끝에서만 데이터를 뺄 수 있다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다. 2. 큐의 함수 push : 큐에 자료를 넣음 pop : 큐에서 자료를 뺌 front : 큐의 가장 앞에 있는 자료 back : 큐의 가장 뒤에 있는 자료 empty : 큐가 비어있는지 아닌지 size : 큐에 저장되어있는 데이터의 개수 C++의 경우 STL의 queue,..
자료구조 : 스택(Stack) 1. 스택의 정의 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)으로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸시(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 된다. 이처럼 나중에 넣은 값이 먼저 나오는 것을 LIFO 구조라고 한다. 가장 가까운 값을 O(1)만에 찾아오는 특징이 있다. 2. 스택의 함수 push : 스택에 데이터를 추가 pop : 스택에서 데이터를 삭제 top..
알고리즘 입출력, 손풀기 문제 입출력은 보통 8가지 경우가 있다. boj.kr에서 A+B 문제를 찾아볼수 있다. https://www.acmicpc.net/problem/1000 https://www.acmicpc.net/problem/2558 https://www.acmicpc.net/problem/10950 https://www.acmicpc.net/problem/10951 https://www.acmicpc.net/problem/10952 https://www.acmicpc.net/problem/10953 https://www.acmicpc.net/problem/11021 https://www.acmicpc.net/problem/11022 EOF처리 C : while(scanf("%d %d", &a, &b) ==2) //scan..