본문 바로가기

분류 전체보기

(96)
투 포인터(TWO-POINTER) 핵심 요약 1차원 배열이 있고, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해서 값을 얻는 형태 주로 while문으로 구성 문제 유형 연속된 수들의 합 부분 배열의 합 풀이 방법 포인터 2개가 같은 방향 포인터 2개가 양 끝에서 반대로 진행(이분 탐색과 유사)
[C++] 맵(MAP) 핵심 요약 pair 를 원소로 저장 key를 기준으로 데이터를 정렬 key는 유일하다. 찾고자 하는 원소를 빨리 찾기 위해 사용 - O(logN) 중복된 key값을 사용하고 싶다면 multimap을 사용하자! 사용 방법 #include 원소 삽입 pair 임시 객체 생성을 통한 삽입 pair 를 만들어주는 make_pair 함수 사용 make_pair로 pair 를 만들어 이를 직접 삽입 emplace 내부에서 pair 를 직접 생성하여 삽입 insert_or_assign을 통해 key가 없는 경우에만 삽입 원소 삭제 1. erase(key)함수를 통해 제거 value 값 참조 - '[ ]' 연산자를 통해 value값 참조가 가능하다. map testMap; map testStringMap; testMa..
[오브젝트] CHAPTER 1. 객체, 설계 정리의 취지 개발 관련 도서는 전공과 관련된 책이니만큼 전공책을 공부한다는 마음으로 읽어볼까 합니다. 저자는 실무가 이론보다 앞서며 코드를 통해 그 부분을 독자에게 잘 설명합니다. 책의 메인 내용이 코드 예제인만큼 코드도 넣으면 좋겠지만, 이 부분은 필자의 역량 부족으로 책을 참고해 주시면 감사하겠습니다. 핵심 용어 의존성, 결합도 캡슐화 자율성, 응집도 구현이 아닌 인터페이스에 의존하라. 의인화 본문 티켓 판매 애플리케이션이라는 구체적인 예시를 통해 설명을 시작한다. 로버트 마틴은 이라는 책에서 모듈에 대해 설명한다. 모듈 - 크기와 상관없이 클래스나, 패키지, 라이브러리와 같이 프로그램을 구성하는 임의의 요소를 의미한다. 모듈의 조건 1. 제대로 실행되어야 함. 2. 변경이 용이해야 함. 3. 이해하..
[C++] 멀티셋[MULTISET] 핵심요약 key값이 중복이 가능한 set이다. 나머지는 set과 모두 동일하다. 사용법 #include //따로 을 추가하지 않는다. 나머지 기능들은 아래 글에서 확인하자. 2023.10.01 - [알고리즘을 위한 간략 정리/자료구조 - 연관 컨테이너] - [C++] 셋(SET) [C++] 셋(SET) 핵심요약 중복 제거 삽입되는 순서에 상관없이 정렬되어 입력된다. 자료구조 이진 트리로 구성되어 있다. 사용 방법 #include SET의 반복자(iterator) s.begin() //set의 시작이 되는 주소값 반환 s.end() //se dmoritle.tistory.com
[C++] 셋(SET) 핵심요약 중복 제거 삽입되는 순서에 상관없이 정렬되어 입력된다. 자료구조 이진 트리로 구성되어 있다. 사용 방법 #include SET의 반복자(iterator) s.begin() //set의 시작이 되는 주소값 반환 s.end() //set의 마지막 부분에 대한 주소값 반환(정확히는 마지막 뒤 공백구간) SET의 용량(capacity) s.empty() //비어있을 경우 true, 아닐경우 false를 리턴 s.size() //저장되어 있는 크기를 리턴 SET의 삽입, 삭제(modifiers) s.insert() //값 삽입 s.erase() //저장된 요소 삭제 s.clear() //저장된 요소들 전부 삭제 s.swap() //s1과 s2를 서로 교환 SET의 기능(operator) s.find() ..
[C++] 원하는 자리수까지 출력하기(반올림, 올림, 내림) 기본적인 반올림, 올림, 내림 헤더 파일이 필요 기본적으로 반올림은 round( 숫자 ), 올림은 ceil( 숫자 ), 내림은 floor( 숫자 )이다 소숫점 1자리에서 진행된다. #include #include using namespace std; int main(){ float num = 3.47; cout
[C++] 이분 탐색(Binary Search) - lower_bound, upper_bound 핵심 요약 이진 탐색이라고도 불리는 이 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다. 그러므로, 배열 내부의 데이터가 정렬이 되어있어야 한다. 시간 복잡도는 logN이다. STL 라이브러리 사용 #include //stl 라이브러리 사용을 위함. lower_bound(begin(), end(), value); upper_bound(begin(), end(), value); lower_bound란? begin()에서 end()의 범위 중에서 value값 이상이 나타나는 가장 작은 이터레이터를 반환하는 것입니다. value가 존재 하지 않는다면 value보다 큰 값 중 가장 작은 값이 나타나는 이터레이터를 반환합니다. algorithm 헤더 안에 존재합니다. v..
[C++] 이분 탐색(Binary Search) - while문 핵심 요약 이진 탐색이라고도 불리는 이 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다. 그러므로, 배열 내부의 데이터가 정렬이 되어있어야 한다. 시간 복잡도는 logN이다. 코드로 구현 변수 3개(start, end, mid)를 사용하여 탐색한다. 주로 while문을 통해 구성된다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는다. [예제] N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 key라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 찾을 경우 1을 출력, 없을 경우 0을 출력하라. #include #include #include using namespace std; int n..