전체 글 (282) 썸네일형 리스트형 백준 2559 투 포인터를 활용한 문제 해결 #include #include #include #include #include using namespace std;int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; vector arr(n); for (int i = 0; i > arr[i]; } int sum = 0; int i = 0; int start = 0; int end = k - 1; for (i = 0; i 프로그래머스 - 단속 카메라 그리디를 사용한 해결 #include #include #include #include using namespace std;int solution(vector> routes) { int answer = 0; sort(routes.begin(), routes.end(), [](const vector& a, const vector& b) { return a[1] RAII란? RAII (Resource Acquisition Is Initialization) C++의 메모리 관리 개념. 객체가 생성 될 때 생성자를 사용하고, 해제 할 때 소멸자를 사용하는 등의 C++ 에서의 자원 관리 방식들을 통칭하여 이르는 개념. 앉넌하게 자원을 관리하기 위해서 사용되어진다.RAII 로 불릴수있는 자원 관리 방식생성자 소멸자 : 자원 획득시 생성자를, 해제 시 소멸자를 이용한다. 스마트 포인터 : unique 포인터 , shared 포인터는 생성자에서 메모리를 할당하고, 소멸자에서 자동으로 메모리를 해제하기 때문에 메모리 누수를 방지.참조 카운팅 : shared 포인터에서 사용하는 메모리 관리 방식. 객체를 참조하는 포인터의 갯수를 카운팅하며 카운팅이 0 이되면 소멸자에서 자동으로 메모리를 .. 메모리 계층 구조와 페이징 기법 가상 메모리에서 필요한 페이지가 메모리에 없으면 페이지 폴트가 발생.운영체제가 보조 기억 장치에 있는 필요로 하는 페이지를 주기억 장치로 이동하고 주기억 장치에 자리가 없으면 페이지 교체 알고리즘 실행.자주 사용되는 페이지는 주기억 장치에 유지. 캐시 메모리들은 자주 사용되는 이러한 페이지들을 저장해, CPU가 주기억 장치에 접근하는 시간을 줄인다.캐싱 전략에 따라 자주 사용되는 페이지의 주변 페이지도 캐싱되는 경우가 있다.메모리 계층 구조와 페이징 기법은 메모리 자원 활용의 효율성을 높이기 위해 함께 작동. 렌더링 파이프라인에서 좌표 변환에 대해서 렌더링 파이프라인에서 좌표 변환은 로컬 좌표에서부터 화면 좌표로 변환하는 일련의 과정을 의미한다. 1. 로컬좌표 객체 자체의 고유 좌표계.메쉬의 각 정점(Vertex)들은 메쉬의 원점 기준으로 표현. 로컬행렬 : 로컬좌표를 월드 좌표로 변환하기 위해 로컬 행렬을 사용. 이 행렬은 주로 위치, 회전, 크기 정보를 담고 있으며, 이를 통해 로컬 좌표를 월드 좌표계로 변환 2. 월드 좌표월드 좌표는 모든 객체가 공통으로 공유하는 좌표계로컬 좌표가 월드 좌표로 변환하면 srt 가 월드의 기준 좌표로 표현.3. 뷰 좌표 뷰 좌표는 카메라를 기준으로 한 좌표계카메라가 원점에 위치하고 카메라의 방향이 z축 방향으로 정렬된 상태로 좌표들이 변환이 과정을 통해 모든 좌표가 카메라의 위치와 방향을 기준으로 변환되기 때문에.. 백준 1806 - 투포인터 #include #include #include #include #include using namespace std;int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, s; cin >> n >> s; vector arr(n); for (int i = 0; i > arr[i]; } int startIdx = 0; int endIdx = 0; int ans = INT_MAX; int sum = 0; sum += arr[startIdx]; while (startIdx = s) { int num = endIdx - startIdx + 1; sum -= arr[startIdx]; startIdx++; i.. 백준 투포인터 2230 start end 를 두고 특정 기준 m 에 따라 start 혹은 end 를 ++ 하면서 풀어가면 모든 경우의 수를 확인 가능하다.O(n) 정도로 그럭저럭.... #include #include #include #include #include using namespace std;int n, m;int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; vector arr(n); for (int i = 0; i > arr[i]; } sort(arr.begin(), arr.end()); int startIdx = 0; int endIdx = 0; int answer = INT_MAX; while (start.. 백준 LIS 2 - 12015 배열 크기가 더 커진 LIS 풀이에는 차이가 없다. 중요한건 lower_boung 를 사용해서 lis 의 크기를 유지하면서도 lis 내용을 갱신해준다. #include #include #include #include using namespace std;int main(void){ int n; cin >> n; vector arr(n); for (int i = 0; i >arr[i]; } vector lis; lis.push_back(arr[0]); for (int i = 1; i lis.back()) { lis.push_back(arr[i]); } else { auto iter = lower_bound(lis.begin(), lis.end(), arr[i]); *iter = arr[i.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 36 다음