컴퓨터/알고리즘

    | 알고리즘 | 3 | 그래프-1 | Stack : DFS | 미로찾기 |

    미로찾기 스택큐 노트로 돌아가기 https://felipuss.tistory.com/entry/니앙팽이-자료구조-2-스택큐-노트?category=961476 1. stack을 이용한 DFS #include #include #include #include #include #include #define pr pair #define y first #define x second using namespace std; int arr[1010][1010] = {0, }; bool visit[1010][1010] = { false, }; pr MV[8] = { {0,-1},{1,-1},{1, 0},{1,1}, {0,1},{-1,1},{-1,0},{-1,-1} }; bool isEnter(pr _pos, int _N) ..

    [백준 2992] 크면서 작은 수 (다음 순열 찾기 & next_permutation사용법)

    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번 단어 변환

    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> 레퍼런스 )

    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 문자열 공백 허용 입력)

    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)

    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] 목차

    상태공간 트리의 탐색 > 문제 해결 과정의 중간 상태를 각각 한 노드로 나타낸 트리이다. ! > 상태공간 트리로 뭘 할수 있을까 TSP (외판원 문제) 그래프 4-Queen 문제 SumOfSubset(부분 집합 합 문제) GraphColoring(그래프 색칠) Knapsack 냅섹 > 뭐랑 관련되어있나? DFS(재귀 스택) 트리나 그래프에서 한 루트로 탐색 백트래킹과 관련 재귀는 스텍오버플로 조심 BFS(queue) 트리나 그래프에서 한 루트로 탐색 최선 우선 탐색도 있다 분기한정과 관련 백트래킹(Backtracking) 분기 한정(Branch and Bound) 목차 백트래킹 몬테 카를로 알고리즘 분기한정 (Branch and Bound) Best FS

    [백준 17466번] N! mod P 모듈러 연산 성질

    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을 다 팩토리얼 연산해서 나중까지 버티다 나머지를 구한다? 이미 오버 플로우 하..

    [프로그래머스 정렬] (level1) 1번 - K번째 수

    1. 그냥.. 임시로 담고, 임시로 담은거 정렬 그다음 K번째 위치. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; vector newArr; for (vector newComm : commands){ for (int i = newComm[0]-1; i

    [백준 10814번] 정렬 - 나이순 정렬 (구조체/Pair 자료구조의 compare 함수!)

    목차 sort란 그럼 pair/구조체 각자 정렬은 어떻게 하는데 compair함수 작성법 사용법 나이순 정렬 풀이 1. sort(시작점, 목적지, compare 함수 ); 정렬문제에서는 총 2가지 정렬이 있다! 오름차순 (기본으로 아무것도 안적으면 실행됨) 내림차순 (일명 greater) ☆참고☆ http://www.cplusplus.com/reference/algorithm/sort/?kw=sort sort - C++ Reference custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); www.cplusplus.com 2. 아니 근데 compare 함수 는 뭡니까? -> pai..