[백준 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을 다 팩토리얼 연산해서 나중까지 버티다 나머지를 구한다? 이미 오버 플로우 하..
[C++ 자료구조 <string> ]substr 사용법 메모
·
http://www.cplusplus.com/reference/string/string/substr/ string::substr - C++ Reference 12345678910111213141516171819 // string::substr #include #include int main () { std::string str="We think in generalities, but we live in details."; // (quoting Alfred N. Whitehead) std::string str2 = str.substr (3,5); // "think" std::size_t pos = str.find www.cplusplus.com 사용 1 2 3 4 5 6 7 8 9 10 11 12 13 14..
[프로그래머스 정렬] (level1) 1번 - K번째 수
·
PS/알고리즘
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 함수!)
·
PS/알고리즘
목차 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..
[프로그래머스 스택/큐] (level2) 2번 - 프린터
·
PS/알고리즘
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 내풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include #include #include using namespace std; int solution(vector priorities, int loc..
[프로그래머스 스택/큐] (level2) 1번 - 기능개발
·
PS/알고리즘
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #include #include #include #include u..
[프로그래머스] string 입력 참고
·
PS/알고리즘
프로그래머스 입력이 좀 생소해서 나중에 참고할 입력 코드임 입력예시 [1,2,3,4,5,6,7...] -- 참고 코드 for (int i = 0; i < Len; i++) { char buf[1000]; int buf_Idx = 0; while (!(str[i] == '[' || str[i] == ',' || str[i] == ' ' || str[i] == ']')) { if(isdigit(str[i])) buf[buf_Idx++] = str[i++]; } buf[buf_Idx] = '\0'; if (buf[0] != '\0') { V.push_back(atoi(buf)); } /* if (str[i] == ']') bIsProg = false; */ } --
[백준 10828번] 스택 - 1차 스터디 A
·
PS/알고리즘
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 시작 정말 간만에 종강해서 알고 기초를 다져보자는 의미로 1차적으로 몸풀기용으로 스택 큐 덱 풀어보기로 했습니다. 입력 N(문자열 길이) 스택 명령어 문자열 "top" "pop" "push val" "empty" "size" 출력 "top" 맨 마지막에 넣었던 element 출력 "pop" top과 같은 출력 "empty" size > N; string operation; for..