|자료구조| 1 | Double LinkedList_3 | 이중 연결 리스트
·
PS/자료구조
양방향 연결 리스트 구현 Visual Studio 솔루션 구성 구현부 노드 - 헤더 : Node.h #pragma once class Node { friend class D_List; protected: int data; Node* next; Node* prev; }; 양방향 연결 리스트 - 헤더 : D_List.h #pragma once #include"Node.h" class D_List { friend class Node; private: Node* mHead; Node* mTail; Node* mCur; int mLength = 0; public: D_List(); int length(); void insert(int); int front(); int back(); void pop_front();..
|자료구조| 1 | Circular LinkedList_2 | 원형 연결 리스트
·
PS/자료구조
원형 연결 리스트 구현 Visual Studio 솔루션 구성 구현부 노드 - 헤더 : Node.h #pragma once #include "CircuitLinkedList.h" class Node { friend class CircuitLinkedList; protected : int data; Node* next; }; 원형 연결 리스트 - 헤더 : CircuitLinkedList.h #pragma once #include "Node.h" class CircuitLinkedList { friend class Node; private : //멤버변수 Node* tail; int length; public : //매서드 CircuitLinkedList(); void LInsert(int data); int..
|자료구조| 1 | LinkedList_1 | 연결리스트(더미노드 없음)
·
PS/자료구조
연결리스트 구현 Visual Studio 솔루션 구성 구현부 헤더 : CrocusLinkedList.h #pragma once class CrocusLinkedList { private : int m_data = 0; CrocusLinkedList* next; public : CrocusLinkedList(); void SetData(int _data); int GetData(); void Linking(CrocusLinkedList* _Node1); void SearchAll(CrocusLinkedList* head); }; 메소드 : CrocusLinkedList.cpp #define _CRTDBG_MAP_ALLOC #include "CrocusLinkedList.h" #include #include..
[백준 2992] 크면서 작은 수 (다음 순열 찾기 & next_permutation사용법)
·
PS/알고리즘
https://www.acmicpc.net/problem/2992 2992번: 크면서 작은 수 정수 X가 주어졌을 때, X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다. 수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다. 예를 들어, 123과 321은 수의 구성이 www.acmicpc.net bool next_permutation 동작 : 사전식 순서로 다음 순열 찾는것 > 매소드 형태: bool next_permutation (BidirectionalIterator first, BidirectionalIterator last); > 시간 복잡도 : O(N!) > 사용법 : 한번 저거 사용하면 정렬시키고 적용; > 매개변수 : first.iterator last.it..
[프로그래머스 그래프 탐색 DFS/BFS] (level 3) 3번 단어 변환
·
PS/알고리즘
https://programmers.co.kr/learn/courses/30/lessons/43163# 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 아이디어 : 1. 노드 가 string인 그래프를 만들어준다. (map을 이용) ㄴ 1-1 : 부모의 자식은 꼭 부모 문자가 단 하나만 다른놈이여야 한다. 1-2 : 부모가 key 이고 element는 1-1을 만족하는 원소들임 ex) hit:hot hot:dot lot dot:hot dog lot dog:dot lo..
[백준 1543번] 문서 검색 (c++ <string> 레퍼런스 )
·
PS/알고리즘
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 1. 생성자 사전에 선언한 스트링 이용하기 s2 = s0; s2 = (s0); s2 = (s0,firstIndexPos, stringlen) firstIndexPos : s0 문자열을 여기서부터 서브스트링을 넣어주고 싶다! 할때 시작 기준 (인덱스) stringlen : 서브 스트링의 길이 얼만큼 넣어주고 싶니? s2 = (s0.begin(), s0.begin + len) 특정 문자로 fill 하고싶다..
[백준 11719번] 그대로 출력하기 2 (<string> Getline 문자열 공백 허용 입력)
·
PS/알고리즘
https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 입력 입력 받은 대로 출력하는 프로그램을 작성하시오. 이게 아주 중요하다!. 공백포함 문자열을 받을 수 있는지를 생각해봐야한다! 출력 Hello Baekjoon Online Judge 저 빈 공간도 포함해서 담아줘야 하는것인데.. cin은 공백, 포함 안한다.. ㅠ 생각방법 cin말고 입력을 공백 포함하고 받을수 없을까? getline사용하면 된다. 1 2 3 4 5 6 7 ..
[백준 15649번] 백트래킹 N과 M(1)
·
PS/알고리즘
https://www.acicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 입력 1 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 상태공간 트리의 관점으로 보자면.. N은 트리의 자식들이고 M은 조사할 트리의 Depth(Level)라고도 할 수 있다, 출력 트리가 주어진 Depth (M) 까지 도달했다면 지나온 경로를 출력 하는것 이라고 할 수 있다. 생각방법 1. 백트래킹 용어 promising & tree & pruning & child 1. promisi..
[상태공간 트리의 탐색 - 0] 목차
·
PS/알고리즘
상태공간 트리의 탐색 > 문제 해결 과정의 중간 상태를 각각 한 노드로 나타낸 트리이다. ! > 상태공간 트리로 뭘 할수 있을까 TSP (외판원 문제) 그래프 4-Queen 문제 SumOfSubset(부분 집합 합 문제) GraphColoring(그래프 색칠) Knapsack 냅섹 > 뭐랑 관련되어있나? DFS(재귀 스택) 트리나 그래프에서 한 루트로 탐색 백트래킹과 관련 재귀는 스텍오버플로 조심 BFS(queue) 트리나 그래프에서 한 루트로 탐색 최선 우선 탐색도 있다 분기한정과 관련 백트래킹(Backtracking) 분기 한정(Branch and Bound) 목차 백트래킹 몬테 카를로 알고리즘 분기한정 (Branch and Bound) Best FS
[백준 17466번] N! mod P 모듈러 연산 성질
·
PS/알고리즘
https://www.acmicpc.net/problem/17466 17466번: N! mod P (1) 양의 정수 N과, N보다 큰 소수 P가 주어질 때, N!을 P로 나눈 나머지를 구하여라. www.acmicpc.net 모듈러 연산 1. 특징 A+B % C = ((A % C) + (B % C)) % C A-B % C = ((A % C) - (B % C)) % C A*B % C = ((A % C) * (B % C)) % C 2. 이걸 왜 쓰는거죠? 오버 플로우 막으려고! unsigned long long : 2^64 = 18,446,744,073,709,551,615 그러니 2의 64 제곱까지도 겨우 버티는데 99999988을 다 팩토리얼 연산해서 나중까지 버티다 나머지를 구한다? 이미 오버 플로우 하..