본문 바로가기
반응형

공부/C++12

[C++] [정렬 알고리즘] 선택 정렬 (Selection Sort) 선택 정렬 (Selection Sort) 선택 정렬은 정렬 알고리즘 중 하나이다. 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있다. 선택 정렬은 정렬 되어있지 않은 데이터 중 최소값을 찾아 맨 앞 값과 자리를 바꾼다. 정렬이 완료된 나머지 데이터를 똑같은 방식으로 정렬하는 것이다. 최악 시간복잡도: O(n^2) 최선 시간복잡도: O(n^2) 평균 시간복잡도: O(n^2) 공간복잡도: O(1) 예시 다음의 배열을 오름차순으로 정렬한다. [ 11, 8, 1, 5, 20, 0 ] 배열에서 최솟값을 찾는다. 최솟값: 0 그리고 정렬되지 않은 배열의 첫 번째 값인 11과 위치를 바꾼다. [ 0, 8, 1, 5, 20, 11 ] 정렬되지 않은 나머지 데이터 중.. 2024. 2. 20.
[C++] [정렬 알고리즘] 버블 정렬 (Bubble Sort) 버블 정렬 (Bubble Sort) 버블 정렬은 정렬 알고리즘 중 하나이다. 시간 복잡도가 O(n^2)로 아주 느리지만 코드가 단순해 자주 사용된다. 버블 정렬을 기본적으로 배열의 두 수(a, b)를 선택한 뒤, 두 수가 정렬되어 있다면 놔두고 그렇지 않다면 두 수를 바꾸는 방식이다. 오름차순으로 정렬할 때는 a b여야 정렬된 것으로 판단한다. 이를 처음부터 끝까지 반복한다. 최악 시간복잡도: O(n^2) 최선 시간복잡도: O(n) 평균 시간복잡도: O(n^2) 공간복잡도: O(1) 예시 다음의 배열을 오름차순으로 정렬한다. [ 11, 8, 1, 5, 20, 0 ] 맨 처음 11과 8을 비교한다. 11 > 8 이므로 두 수를 바꾼다. [ 8, 11, 1, 5, 20, 0 ].. 2024. 2. 2.
[C++] [인프런] 섹션 8. TextRPG 실습 보호되어 있는 글 입니다. 2024. 1. 31.
[C++] 팩토리얼 (Factorial) 팩토리얼 팩토리얼이란 사전적 정의로는 "n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말"이다. 기호는 느낌표(!)를 사용하며 팩토리얼이라고 한다. ex) 5! = 5 * 4 * 3 * 2 * 1 = 120이다. n! = n * (n-1) * (n-2) * · · · * 3 * 2 * 1이다. +) 0! 의 값은 1이다. 재귀를 이용한 팩토리얼 재귀란 어떠한 것을 정의할 때 자기 자신을 참조하는 것을 뜻한다. 팩토리얼을 재귀를 이용해 구현한다면 factorial 함수 안에서 자기 자신인 factorial 함수를 호출하는 것이다. #include using namespace std; int factorial(int num) { if (num > n; result = f.. 2024. 1. 21.
[C++] 유클리드 호제법을 사용해 최대공약수 구하기 유클리드 호제법 유클리드 호제법이란 2개의 자연수를 이용해 최대공약수를 구하는 알고리즘이다. 유클리드 호제법을 사용해 최대공약수를 구하는 방법 두 자연수를 각각 a와 b라고 하고 a >= b 일 때 a % b = c 계산을 한다. c가 0이 아니라면 b % c 계산을 진행한다. 나머지 값이 0이 될 때까지 반복한다. 나머지 값이 0이 되었을 때 나누는 수의 값이 두 자연수의 최대공약수이다. 예시) 78696와 19332의 최대공약수 구하기 / 최대공약수는 36이다. 78696 = 19332×4 + 1368 19332 = 1368×14 + 180 1368 = 180×7 + 108 180 = 108×1 + 72 108 = 72×1 + 36 72 = 36×2 + 0 출처) 위키백과 최대공약수 구하기 유클리드 .. 2024. 1. 19.
[C++] 문자열의 공백 제거하기 C++ 문자열 공백을 remove, erase 함수를 사용해 제거하기 문자열에 존재하는 공백을 없애주기 위해 remove 함수와 erase 함수를 이용할 수 있다. 이때 remove와 erase를 동시에 사용하여 문자열 내의 모든 공백을 제거한다. erase 함수 형태: erase(제거할 원소의 위치) or erase(문자열의 시작 위치, 문자열의 마지막 위치) erase 함수를 사용할 때 매개변수를 1개만 넘겨준다면 문자열의 특정 원소만 제거하는 것이고, 매개변수를 2개 넘겨준다면 문자열의 시작 위치와 마지막 위치 사이에 존재하는 모든 원소를 제거한다. 제거한 원소만큼 문자열의 크기가 작아진다. +) 매개변수가 1개일 때 #include using namespace std; int main() { st.. 2024. 1. 16.
[C++] [인프런] 섹션 7. 동적 할당 보호되어 있는 글 입니다. 2023. 11. 26.
[C++] [인프런] 섹션 6. 객체지향 여행 보호되어 있는 글 입니다. 2023. 2. 2.
[C++] [인프런] 섹션 5. 포인터 보호되어 있는 글 입니다. 2023. 1. 10.
[C++] [인프런] 섹션 4. 함수 보호되어 있는 글 입니다. 2022. 12. 26.
[C++] [인프런] 섹션 3. 코드의 흐름 제어 보호되어 있는 글 입니다. 2022. 12. 21.
[C++] [인프런] 섹션 2. 데이터 갖고 놀기 보호되어 있는 글 입니다. 2022. 12. 6.
반응형