브루트 포스(Brute Force)
·
내배캠/C++
🔎브루트 포스란?브루트 포스는 말 그대로 무식하게 문제를 푸는 방법을 의미한다. 가능한 모든 경우의 수를 전부 시도해보는 것이다. 즉 브루트 포스의 핵심은 모든 경우의 수를 빠짐없이 탐색해 보는 것이다.브루트포스 기법은 일반적으로 데이터의 크기가 작거나, 최적화된 알고리즘을 찾기 어렵거나, 알고리즘의 정확성을 검증할 때(정답 확인용) 사용된다.  📌브루트 포스를 구현하는 대표적인 방법과 예시 코드경우의 수를 어떻게 만들어낼지에 대해서 여러가지 전략들이 존재 1️⃣ 중첩 반복문을 이용한 탐색 반복문을 중첩하여 간단한 문제의 모든 경우를 탐색하는 방식정수 n(1 ≤ n ≤ 100)이 주어질 때, a + b^2 + c^3 = n 식을 만족하는 (a, b, c)의 개수를 구하라. 단, a, b, c는 1 이..
STL 정리
·
내배캠/C++
STL은 C++에 내장된 템플릿 기반의 라이브러리이다.크게 컨테이너, 반복자(Iterator), 그리고 알고리즘으로 구성되어있다.📍컨테이너: 데이터를 저장, 관리하는 구조체들의 집합 ➡️ 마을에 속한 창고📍반복자: 컨테이너 내 데이터들을 순회할 수있도록 도와주는 일종의 포인터 ➡️ 창고 정리를 도와주는 NPC📍알고리즘: 정렬, 탐색, 삽입, 삭제 등과 같은 로직을 매우 효율적으로 제공 ➡️ 일 참 잘하는 용병  📌 컨테이너컨테이너는 데이터를 안전하고 편리하게 담아두는 창고이다.다양한 컨테이너들이 있고, 각 컨테이너마다 삽입, 삭제, 접근 방식이 조금씩 다르다. ✅ vector크기가 동적으로 조정되는 배열 컨테이너연속된 메모리 블록을 사용하여서 O(1)로 임의 접근이 빠르다. 삽입/삭제는 O(1)로..
N번재 값 찾기
·
내배캠/C++
📌 nth_elementnth_element는 주어진 범위에서 n번째로 작은 원소를 해당 위치로 이동시키고이를 기준으로 왼쪽에는 더 작은 원소들, 오른쪽에는 더 큰 원소들이 반정렬 상태로 배치되도록 만든다.완전히 정렬된 상태는 아니지만, 특정 원소의 위치를 빠르게 찾아낼 때 유용하다.내부적으로 퀵소트(Quick Sort)의 파티셔닝 로직과 유사한 방식으로 작동한다.평균 시간 복잡도는 O(n)이다.  📍세 번째로 작은 원소 구하기#include #include #include // nth_elementusing namespace std;int main() { vector v = {9, 1, 4, 7, 2, 6}; // 세 번째로 작은 원소를 위치시킴 nth_element(v.begin..
순열 구하는 STL 함수 next_permutation(), prev_permutation()
·
내배캠/C++
📌 순열 구하는 STL 함수 next_permutation(), prev_permutation()순열을 쉽게 구할 수 있는 next_permutation()과 prev_permutation() 함수가 있다. 이 두 함수는 주어진 데이터(벡터나 배열 등)를 정렬된 상태로부터 다음 순열 또는 이전 순열을 구하는 데 유용하다.  ✅ next_permutation() 함수bool next_permutation(Iterator first, Iterator last);🔎동작 원리:현재 컨테이너가 사전순으로 가장 마지막 순열이면 false를 반환하고 처음 순열로 바꾼다.그렇지 않으면 다음 순열을 구하고 true를 반환한다.  ✅ prev_permutation() 함수bool prev_permutation(Iter..
온라인 학습 관리 시스템 구현
·
내배캠/C++
✅구현 요건더보기📌개요최소 2개 이상의 STL 컨테이너를 조합하여 프로그램을 구현할 것.실용적인 데이터 처리를 수행하는 프로그램을 작성할 것.코드의 설계 의도를 발표하고, 컨테이너 선택 이유를 설명할 것.📌문제어떤 온라인 학습 플랫폼에서 학생들의 성적을 관리하는 시스템을 만든다고 가정한다. 이 시스템은 다음과 같은 기능을 포함해야 한다.학생 성적 추가 기능학생 ID(int)와 과목 이름(string), 점수(int)를 저장한다.한 학생은 여러 과목을 수강할 수 있다.(예: "1001번 학생이 'C++' 과목에서 85점, '알고리즘'에서 90점을 받음")동일 학생의 동일 과목을 입력하는 경우엔 최신 점수로 갱신을 한다.점수는 0 ~ 100점까지만 유효한 범위학생의 전체 성적 조회 기능특정 학생의 모든 ..
피보나치 수열
·
내배캠/C++
📌 피보나치 수열(Fibonacci Sequence)피보나치 수열은 수학에서 매우 유명한 수열로, 간단하면서도 다양한 분야에서 응용되는 특징을 가진다.   📍 피보나치 수열의 정의피보나치 수열은 다음과 같은 규칙으로 정의된다:첫 번째 항은 0, 두 번째 항은 1로 시작한다.이후의 항은 바로 앞의 두 항을 더한 값이다.수열의 일반식:F(0)=0F(0) = 0F(0)=0F(1)=1F(1) = 1F(1)=1F(n)=F(n−1)+F(n−2)F(n) = F(n-1) + F(n-2)F(n)=F(n−1)+F(n−2) (단, n≥2n \geq 2n≥2)예시로 본 피보나치 수열:0,1,1,2,3,5,8,13,21,34,55,…0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…  📍 피보나치 수열의 특..