Algorithm/PS With C++ (8) 썸네일형 리스트형 BOJ 1431 Cpp Feat. Sort Function Custorm Sort Function을 커스텀해서 정렬 조건을 설정하는 문제이다. 문제에서 제시한 3가지 조건을 comp 비교 함수 내부에 잘 정의하면 쉽게 풀 수 있다. condtion1 : 길이가 더 작은 문자열이 앞으로 온다. condition2 : 모든 수의 합을 비교해 작은 합이 먼저 온다. condition3 : 사전순으로 정렬한다. // a의 합이 b보다 작다 if (a_digit_sum != b_digit_sum) return a_digit_sum tip : 정렬되어야 하는 순서를 비교 연산식으로 리턴하는 것이 실수를 줄일 수 있다. PS2026/12월/1431.cpp at main · novvvv/PS202626년 알고리즘 문제 풀이 레포지토리 . Co.. Solved.ac Class3++ AC 5430 Cpp 문제에서 제시하는대로 단순히 배열에 담고 원소를 Reverse 하는 방식은 시간 복잡도가 O(N)만큼 소요된다. 따라서 최악의 경우 100,000(p) * 100,000(n) * 100(t)를 하면 시간초과가 발생하기에 단순 Reverse로는 문제를 풀이할 수 없다. 그렇기에 처음에는 current_deque와 reverse_deque 2개를 두어 R연산이 발생할때마다 swap하는 방식을 채택하였으나 마찬가지로 시간초과가 발생하여 코드를 분석해 보았더니 Java나 Python같은 언어와는 달리 Cpp에서는 아래 코드처럼 덱에 다른 덱을 대입하면 참조에 의한 복사가 아닌 값에 의한 복사가 발생해 단순 주소값을 변경하는것이 아니라 모든 원소를 복사하여 O(N)만큼의 시간 복잡도가 소요된다는 정보를 얻게되었다.. [Cpp] vector max_element, min_element, distance * Cpp STL max_element, min_element의 사용법과distance method를 사용해 벡터 내부의 최대/최소 원소의 인덱스를 구하는 방법에 대해 소개합니다.#max_element / min element usage max_element(vector_name.begin(), vector_name.end())min_element(vector_name.begin(), vector_name.end()) Header에 선언되어 있다. 벡터 내부의 최대/최소 원소의 첫 번째 위치를 "이터레이터" 형태로 반환한다. 반환타입이 "값"이 아닌 "이터레이터" 이기에 * 연산자를 사용해 값에 접근해야 한다. #include #include #include using namespace std;int .. Cpp Algorithm Technic Climits 가장 큰 최대, 최소값 설정하기 알고리즘 문제를 풀이하다 보면 가장 큰 값을 초기화해야 한다던지가장 작은 값을 초기화해야 하는 케이스가 빈번하게 발생한다. 그럴 때마다 문제에서 제시해 준 조건으로 나올 수 있는 최대 최소를 계산했는데, climits 내부의 LLONG_MAX, LLONG_MIN을 활용하면 간편하게 계산할 수 있어 정리해 보고자 한다. #include #include using namespace std;int main() { cout LLONG_MAX : 9223372036854775807LLONG_MIN : -9223372036854775808Program ended with exit code: 0 LLONG_MAX의 경우 64bit long long 정수형의 최댓값인 2^63−1 (9223372036854775.. [Cpp] STL 2D Vector Cpp STL의 2차원 벡터를 생성하는 방법에 대해 정리한 문서입니다.개인적인 공부 내용을 정리하는 용도로 작성한 글이기에 잘못된 내용을 포함하고 있을 수 있습니다. 2차원 벡터를 선언하는 방법은 크게 2가지로 구분됩니다.Case1. 벡터 내부에 벡터를 선언하여 2차원 벡터를 생성하는 방식Case2. 1차원 벡터 배열을 사용해 2차원 벡터처럼 사용하는 방식 1번째 케이스는 Row, Column이 모두 동적인 벡터로 벡터 안에 백터가 들어가 있는 형태입니다. 반면 2번째 케이스는 Row는 정적이지만 Column은 동적인 벡터로 1차원 벡터를 배열 형태로 선언하여실제로는 1차원 벡터이지만 2차원 벡터와 같이 사용 가능합니다. 주로 그래프 관련 알고리즘 문제를 풀이할때 인접리스트를 정의할때 2번 방식을 자주 .. [C++] fill method *C++ STL Algorithm 헤더의 fill 메서드 사용 방법에 대해 다룬 포스팅입니다.*개인적인 공부 내용을 기록하기 위해 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.#fill void fill (ForwardIterator first, ForwoardIterator last, const T& value);Header - 지정 범위의 요소들을 "타입에 맞는 값" 으로 채워준다. int type 배열이라면 int 타입에 맞는 값으로 각 요소를 설정하며, 이터레이터를 지원하기에 vector, array와 같은 다른 STL 컨테이너에서 사용 가능하다. #배열에서 fill 함수를 사용한 예제#include #include using namespace std;int main() { .. Binary Search in C++ STL * STL 내부의 이진탐색 관련 메서드 사용법에 관해 정리한 글 입니다.→About Binary Search#1binary_search method#include bool binary_search(first, last, value); parameter Infofirst : 탐색 시작 위치 (시작 이터레이터) * 배열의 경우 시작 주소 last : 탐색 종료 위치 (종료 이터레이터) * 배열의 경우 마지막 주소value : 탐색 타깃 데이터 ▶ first ~ last 범위 내부에 타깃 데이터 (value) 가 존재하는지 O(LogN) 시간 복잡도로 탐색한다. ▶ 만약 타깃 데이터가 존재한다면 true를 반환하고, 타깃 데이터가 존재하지 않는다면 false를 반환한다.▶ 단, 원소가 정렬된 상태에서만 탐색.. [C++] About STL Set Container in PS Algorithm * PS 알고리즘 풀이에서 사용되는 STL Set Container 사용법에 관하여 간략하게 정리해 둔 포스팅 입니다. *잘못된 내용을 포함하고 있을 수 있으며, 수정할 내용이 있다면 댓글로 남겨주세요#1 About STL Set - Set은 수학의 집합 개념을 본따서 설계된 자료구조 이기에 중복을 허용하지 않으며, 다양한 집합 관련 연산 (교집합 _ set_intersection , 합집합 set_union , 차집합 set_difference) 을 제공한다. - STL Associative Container [연관 컨테이너] 에 속하는 set, multiset과 STL Unordered Associative Container [비정렬 연관 컨테이너] 에 속하는 unordered_set , unorde.. 이전 1 다음