N과 M (순열과 조합 이해하기)
·
✍2021,2022/자료구조
세트1 1. 순열 (중복 x) 2. 조합 (중복x) 여기서 어짜피 visited로 중복 체크를 하기 때문에 i+1 이아니라 i를 보내더라도 ㄱㅊ을듯 3. 순 (중복 o) 중복을 체크하는 방문배열이 필요가 없다. (중복을 허용하기 때문) 4. 조 (중복 o) 세트2 5. 순 전체 집합이 1~10000이라고 한다면, visited 를 1~10000까지 확인한다면 이 문제를 풀 수 있을까? -> x 시간이 너무 많이 들엉 arr+1 인 이유가 인덱스 1 부터라서인듯 6. 조 7. 순 8. 조 세트3 9. 전체집합이 1~10000까지임 근데 분명히 이걸 한번씩 돌면 시간초과일것 1부터 10000까지 나온 숫자만 확인하는것 어떻게 뽑아내서 보냐 ? -> 따로 저장해서 인덱스로만 따져보면 12 13 21 23 31..
자료구조 문제풀이
·
✍2021,2022/자료구조
- 천재수학자 상필 cou
자료구조
·
✍2021,2022/자료구조
자료를 효율적으로 표현하고 저장하고 처리할 수 있도록 하는 구조 선형구조/비선형구조 스택 - 자료를 차곡차곡 쌓아올린 형태의 자료구조 후입선출 #inlcude stack st; 로 선언 가능 - 멤버함수 push() pop() top() size() empty() 큐 뒤에서는 삽입 앞에서는 삭제 선입선출 #include queue q; push() pop() front() back() size() empty() 덱 양방향 큐 양쪽끝에서 삽입 삭제 가능한 구조 #incldue deque deq; push_front push_back pop_front pop_back front() back() size() empty()
동적 계획법
·
✍2021,2022/자료구조
DP : 하나의 큰 문제를 여러개의 작은문제로 분할하여 해결하는 방법 분할정복과 다르게 작은문제들의 답을 저장한 뒤 재활용 Top - Down, Bottom-Up 너무..빨라 1. 겹치는 부분문제 2. 최적부분구조 사용방법 1. DP로 풀수있는지 판단 2. 반복되는 부분문제찾기 3. 점화식 세우기 4. 기저상태 설정 5. 메모제이션 기법 적용(부분문제 값을 저장해서..ex. 1차원배열..2차원배열...) 6. 구현 예시) 돌게임2 ..? 이해할 새도없었음
트리(2)
·
✍2021,2022/자료구조
이진트리: 노드가 왼쪽 자식과 오른쪽 자식만을 갖는 트리. 두 자식 가운데 하나 또는 둘 다 존재하지 않는 노드가 있어도 상관 없음. 이진트리의 특징은 왼쪽 자식과 오른쪽 자식을 구분한다는 점이다. ƒ 완전 이진 트리(Complete Binary Tree) • 높이가 h이고 노드 수가 n개일 때 노드 위치가 포화 이진 트리에서의 노드 1번부터 n번까지의 위치와 완전히 일치하는 이진 트리 높이가 k인 완전 이진트리가 가질 수 있는 노드의 수는 최대 2^(k+1)-1 개 이므로, n개의 노드를 저장할 수 있는 완전 이진 트리의 높이는 log n 이다. ƒ 편향 이진 트리(Skewed Binary Tree) • 높이가 h일 때 h+1개의 노드를 가지면서 모든 노드가 왼쪽이나 오른쪽 중 한 방향으로만 서브 트리..
·
✍2021,2022/자료구조
스택과 큐는 추상적 자료구조이다. 언제 큐와 스택을 쓰는가? 브라우저에서 뒤로가기 누르면 스택을쓰는것! 뭔가를쓰다가 뒤로가기 하면 스택이닷! 되돌리기 = 스택에 차곡차곡쌓다가 스택으로 가서 과거 되돌리기 이메일 전달, 푸쉬알림, 쇼핑물 주문처리, 콜센터의 백엔드 : 큐 ƒ 스택과 비슷한 삽입과 삭제의 위치가 제한되어있는 유한 순서 리스트 ƒ 큐는 뒤에서는 삽입만 하고, 앞에서는 삭제만 할 수 있는 구조 • 삽입한 순서대로 원소가 나열되어 가장 먼저 삽입(First-In)한 원소는 맨 앞에 있다가 가장 먼저 삭제(First-Out)됨 ☞ 선입선출 구조 (FIFO, First-In-First-Out) 삽입: enQueue 삭제 : deQueue rear : 저장된 원소 중 마지막 원소 front : 제일 앞..
스택
·
✍2021,2022/자료구조
접시를 쌓듯이 자료를 차곡차곡 쌓아 올린 형태의 자료구조 스택에 저장된 원소는 top으로 정한 곳에서만 접근 가능 • top의 위치에서만 원소를 삽입하므로, 먼저 삽입한 원소는 밑에 쌓이고, 나중에 삽입한 원소는 위에 쌓이는 구조 • 마지막에 삽입(Last-In)한 원소는 맨 위에 쌓여 있다가 가장 먼저 삭제 (First-Out)됨 ☞ 후입선출 구조 (LIFO, Last-In-First-Out) 스택의 이해 : 스택의 개념과 구조 스택의 연산 ƒ 스택에서의 삽입 연산 : push ƒ 스택에서의 삭제 연산 : pop 스택의 push() 알고리즘 ①top ← top+1; − 스택 S에서 top이 마지막 자료를 가리키고 있으므로 그 위에 자료를 삽입 하려면 먼저 top의 위치를 하나 증가 − 만약 이때 top..
자료구조(5) - 연결 자료구조와 연결리스트
·
✍2021,2022/자료구조
연결 자료구조Linked Data Structure ƒ 자료의 논리적인 순서와 물리적인 순서가 불일치 • 각 원소에 저장되어 있는 다음 원소의 주소에 의해 순서가 연결되는 방식 −물리적인 순서를 맞추기 위한 오버헤드가 발생하지 않음 • 여러 개의 작은 공간을 연결하여 하나의 전체 자료구조를 표현 −크기 변경이 유연하고 더 효율적으로 메모리를 사용 ƒ 연결 리스트 • 리스트의 연결 자료구조로 표현 • 연결하는 방식에 따라 단순 연결 리스트와 원형 연결 리스트, 이중 연결 리스트, 이중 원형 연결 리스트 순차 자료구조와 연결 자료구조의 예 ƒ 순차 자료구조 • 한 덩어리로 된 소시지나 기차처럼 하나로 된 고정 크기 메모리 공간 사용 ƒ 연결 자료구조 • 줄줄이 소시지나 기차처럼 작은 공간을 여러 개 연결하여..
자료구조기초 (4) - 순차자료구조와 선형리스트
·
✍2021,2022/자료구조
순차 자료구조의 개념 ƒ 구현할 자료들을 논리적 순서로 메모리에 연속 저장하는 구현 방식 ƒ C 프로그래밍에서 순차 자료구조의 구현 방식 제공하는 프로그램 기법은 배열 ƒ 리스트 : 자료를 구조화하는 가장 기본적인 방법은 나열하는 것 ™ 선형 리스트Linear List ƒ 순서 리스트Ordered List ƒ 자료들 간에 순서를 갖는 리스트 선형 리스트의 저장 ƒ 순차 방식으로 구현하는 선형 순차 리스트(선형 리스트) • 순차 자료구조는 원소를 논리적인 순서대로 메모리에 연속하여 저장 ƒ 연결 방식으로 구현하는 선형 연결 리스트(연결 리스트) 선형 리스트에서 원소 삽입 선형리스트 중간에 원소가 삽입되면, 그 이후의 원소들은 한 자리씩 자리를 뒤로 이동하여 물리적 순서를 논리적 순서와 일치시킴 순차적인게 ..
자료구조기초 (3)
·
✍2021,2022/자료구조
배열 같은 자료형을 가진 자료들을 나열하여 메모리에 연속으로 저장하여 만든 자료들의 그룹 아 이거 코딩 어케하더라.........ㅎㅎㅋㅋ 인덱스index • 배열의 요소를 간단히 구별하기 위해 사용하는 번호 • C에서 인덱스는 항상 0부터 시작 포인터 개념 ƒ 변수의 메모리 주소값 ƒ 포인터변수 • 주소값을 저장하는 특별한 변수 • 포인터 변수가 어떤 변수의 주소를 저장하고 있다는 것은 포인터 변수가 그 변수를 가리키고 있다(포인트하고 있다)는 의미 • 포인터 변수를 이용하여, 연결된 주소의 변수 영역을 액세스 함 • 포인터 변수를 간단히 포인터라고 함 가볍게 넘어감. 배운내용 그치만이제 코딩으로 하라그러면 못함 똥멍충이임 구조체 재귀호출(순환호출) = Recursive ƒ 자기 자신을 호출하여 순환이 ..
리촬리
'✍2021,2022/자료구조' 카테고리의 글 목록