전체 글

· PS 연습
스택을 이용하는 문제 [내 풀이] #include #include #include using namespace std; int main() { string word; cin>>word; int n = word.size(); list li; char order; char p_insert; for(int i=0; i>m; for(int i=0; i>order; if(order=='L') // 왼쪽 한칸 { if(cersor!=li.begin()) cersor--; else continue; } else if(order=='D') // 오른쪽 한칸 { if(cersor!=li.end()) cersor++; else continue; } else if(order=='B') // 지워 (마지막 요소 지울때 주의!..
· C++
▶ 자료구조의 종류 연결리스트 스택 큐 덱 트리 우선순위 큐 ▶ 연결 리스트(linked list) (양방향 리스트로 구현되어 있음!) [ADT] 리스트 생성 양 끝에 요소 삽입/삭제 임의의 위치에 요소 삽입/삭제 리스트의 각 요소 출력 #include #include using namespace std; int main() { list li; // 리스트 생성 list ::iterator iter = li.begin(); // 리스트의 위치를 가리키는 포인터 for(int i=0; i
· PS 연습
스택을 이용하는 문제 내 풀이 #include #include #include using namespace std; int main() { int stick_count=0; int result=0; stack s; string stick_lazor; //stack의 top을 봐야겠네 cin>>stick_lazor; for(int i=0; i
· PS 연습
문제 설명이 애매모호 해서 더러운 문제 + 애초에 끝까지 문제이해를 잘못해서 결정적인것을 못봤을수도... [문제이해] BOJ 1874번 스택 수열 - YouTube [나의코드] #include #include using namespace std; int max_arr(int arr[], int num) { int max=0; int result; for(int i=0; i
· PS 연습
스택과 관련된 문제 [문제] 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력..
후입 선출. [스택의 종류] 배열을 기반으로 구현한 스택 연결리스트를 기반으로 구현한 스택 [배열을 기반으로 구현한 스택] → 인덱스 0의 배열요소가 스택의 바닥 ! (길이와 상관없이 무조건 인덱스 0이 바닥이기 때문) ▶ ADT 필요한 기능 : 스택 초기화, 스택이 빈 경우 true 반환, 스택에 데이터 저장, 마지막에 저장된 요소 삭제, 마지막에 저장된 요소 들여다보기 void StackInit(Stack * pstack); // 스택 초기화 int SIsEmpty(Stack * pstack); // 스택 비었는지 확인 void SPush(Stack * pstack, Data data); // 스택에 데이터 삽입 Data SPop(Stack * pstack); // 스택에서 데이터 반환&삭제 Data..
· PS 연습
연결리스트를 사용하는 문제 [문제] 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 먹게 된다. 어떻게 하면 이러한 상황을 바꾸어 볼 수 있을까 고민하던 중 선생님이 한 가지 방법을 내 놓았다. 그 방법은 다음과 같다. 학생들이 한 줄로 줄을 선 후, 첫 번째 학생부터 차례로 번호를 뽑는다. 첫 번째로 줄을 선 학생은 무조건 0번 번호를 받아 제일 앞에 줄을 선다. 두 번째로 줄을 선 학생은 0번 또는 1번 둘 중 하나의 번호를 뽑는다. 0번을 뽑으면 그 자리에 그대로 있고, 1번을 뽑으면 바로 앞의 학생 앞으로 가서 줄을 선다. 세 번째로 줄을 선 학생은 0, ..
[자료구조 공부법 -BY 윤성우씨] 1. 자료구조의 ADT 정의 2. 정의한 ADT의 구현 3. 구현이 완료된 자료구조의 활용 [연결리스트의 종류] 배열을 기반으로 구현된 리스트 동적할당을 기반으로 구현된 리스트 단순 연결 리스트 원형 연결 리스트 양방향 연결 리스트 ADT(추상 자료형) : 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 "기능이 무엇인지" 나열한것 (ex. 리스트 자료구조의 데이터를 저장하는 기능인 LInsert) ▷ 추상 자료형은 사람에 따라서 정의하는 방식이 다르므로 "표준" 이란것이 없다 [배열을 기반으로 구현된 리스트] → 노드 개념이 없음 장점 : 데이터 참조가 쉽다(by 인덱스) 단점 : 배열의 길이가 한정되어 있다, 삭제할때마다 데이터 이동;; ▶ ADT 필요한 기능 ..
생선묵김치찌개
준혁's 코딩 연구기록