일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Stack
- 알고리즘
- mysql
- Blockchain
- BFS
- 백준
- Swift
- C++
- 프로그래머스
- 플로이드와샬
- 그리디
- ReLU
- 그래프
- DeepLearning
- Algorithm
- Greedy
- 백트래킹
- dfs
- 부르트포스
- 문제풀이
- 실버쥐
- Node.js
- Docker
- 풀이
- sigmoid
- dp
- NeuralNetwork
- 캡스톤정리
- 탐색
- ios
- Today
- Total
목록🌟 자료구조+알고리즘 (10)
개발아 담하자
Tuple C++ 에서 tuple 은 두 개 이상의 타입을 헤더 파일로 묶어주는 것을 의미합니다. pair 의 확장 버전 입니다. 헤더 파일 #include Tuple 의 함수 make_tuple : 튜플을 만드는 함수 get : 튜플로부터 값을 가져오는 함수 swap : 연산자 튜플의 값을 다른 변수에 전달하는 함수 tie : 튜플의 값알 가져와 값을 따로 분류할 때 사용하는 함수 사용 예시 #include #include #include using namespace std; tuple getAgeandName() { int age; string name; cout > age; cout > name; return make_tuple(age, name); } int main() { tuple person..
비트는 이진숫자(binary digit) 를 뜻하는 말로 컴퓨터에서 사용하는 데이터의 최소 단위를 의미합니다. 비트는 0/1 , true/false, on/off 상태를 나타낼 수 있습니다. 비트 마스크(BitMask) 는 이러한 비트의 형태를 활용해, 정수의 이진수를 표현을 활용하는 기법입니다. 예시 길이가 5인 집합 {0,1,2,3,4} 가 존재한다고 가정합니다. 우리는 여기서 몇 가지 요소를 뽑아 어떤 요소를 선택했는지 부분집합을 사용해 표현할 수 있습니다. { 1, 2, 3, 4 }, { 1, 2, 4 }, { 2, 4 }, { 1 } ....... 위와 같은 형태로, Integer 형으로 인덱스를 활용할 수 있다면, 단순히 boolean 배열을 통해 구현할 수도 있습니다. int[] array1..
C++ 에서 next_permutation 혹은 prev_permutaion 함수를 통해 순열을 구할 수 있습니다. #include 먼저 위와 같이 algorithm 헤더 파일을 추가해야 합니다. Next_permutation() 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 다음 순열 을 구하고 true를 반환합니다. 다음 순열이 없다면 (다음에 나온 순열이 순서상 이전 순열보다 작다면) false를 반환합니다. #include #include #include using namespace std; int main(){ vector v = {1,2,3,4} do{ for(int i=0; i
Dynamic Programming (DP) DP(Dynamic Programming, 동적 계획법) 이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말합니다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용합니다. DP 의 원리는 일반적으로 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 최종적인 목적에 도달하는 것입니다. 각 하위 문제의 해결을 계산한 뒤, 그 해결책을 저장하여 후에 같은 하위 문제가 나왔을 경우 그것을 간단하게 해결하여 계산 횟수를 줄일 수 있습니다. 특히 이 방법은 하위 문제의 수가 기하급수적으로 증가할 때 유용합니다. 예제 :..