본문 바로가기

분류 전체보기330

0주차-3. 기초 개념 : 조합(Combination) 조합이란? 조합이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미한다. (순서 상관 없음) 조합이 순열과 다른 대표적인 점은 순서가 달라도 요소가 같으면 같은 조합으로 본다는 것이다. 1, 2, 3, 4, 5라는 집합이 있을 때 {1, 2, 3, 4, 5}, {2, 1, 3, 4, 5}, {3, 1, 2, 4, 5} .... 등등 순서를 바꿔도 같은 조합으로 본다는 것이 대표적인 차이점이다. 조합은 n C r로 표현하며 개수를 구하는 식은 아래와 같다. 재귀함수를 이용한 구현 (뽑아야 할 수(r) 가 4개 이상인 경우) void combination(int start, int n, int k, std::vector& v) { // n : 최대 조합 수 'n'Cr // k : 그 조합에서 추출할 요.. 2022. 9. 3.
0주차-2. 기초 개념 : 순열(Permutation) 순열이란? 순열이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미한다. (순서 상관 있음) 1, 2, 3이라는 수들의 집합이 있을 때 {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1} 이렇게 6가지 순열이 나온다. n P r이란, 쉽게 말해 n개중에 r개로 이루어진 수열을 만든다는 뜻. 프로그램에서 구현 방법은? do-while문을 이용한 구현 #include #include #include #include template void print(const T& container) { for (auto e : container) std::cout 2022. 9. 3.
0주차-1. 기초 개념 : 재귀함수 재귀함수(Recursion function)란 정의 단계에 자신을 재참조하는 함수이다. 재귀함수의 특징 전달되는 '상태'인 '매개변수'만 달라질 뿐 똑같은 일을 한다. 그러다가 어떤 '상태'에 도달했을 때 종료되는 '기저 사례'가 있다. 함수 호출에 대한 코스트가 크므로 반복문으로 풀 수 있으면 반복문으로 푸는게 좋다. 큰 문제를 작은 문제로 나누어 해결할 때 사용한다. 재귀함수를 사용할 때 주의해야 할 점 기저 사례를 반드시 작성해야 한다. (안그러면 무한히 반복하므로) 사이클이 있다면 사용할 수 없다. ( f(a) -> f(b) -> f(a) ... 같은 이유로 무한 반복..) Factorial 이 점화식을 코드로 표현하면 아래와 같다. int factorial(int n) { if (n < 2) r.. 2022. 9. 1.
1-2. MASM 기본 문법 본 글은 코드누리의 Windows Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/ 레지스터(ebx) mov L1, ebx // 레지스터(ebx) -> 메모리(L1) mov eax, L1 ret end 위 예제처럼 메모리에서 메모리를 복사하는 행위는 불가능하다! 그 이유는 현재의 메모리의 구조상 메모리 유닛 자체가 Read/Write를 동시에 할 수 없기 때문이다. 메모리 주소 구하는 방법 ; asm2.asm .model flat public _asm_main .data L1 DWORD 100 L2 DD 200 L3 DD ? .code _asm_main: mov eax, offset L1 // eax = &L1과 동일한 의미 ret end.. 2022. 9. 1.