PROGRAMMING/C++
-
(백준 16562번 친구비 C++) 라이님 블로그 대회 알고리즘 따라잡기 12) Union Find 3PROGRAMMING/C++ 2024. 5. 9. 21:23
백준 16562번https://www.acmicpc.net/problem/16562 유니온 파인드 문제인 걸 알고봐서 아이디어를 내는 건 어렵지 않았다.연결된 그래프 중 가장 친구비가 작은 노드를 root node로 지정하고, root node들을 다 더한 값이 이준석 학생이 가진 돈보다 많으면 된다도 생각했다. 고런데,,,!! 29%에서 안되는 것이 아닌가! 그래서 찾은 문제점 1. 일단 반례부터 투척(출처) : https://www.acmicpc.net/board/view/81875반례 :5 3 2010 20 20 10 301 32 45 4답 : 20 node의 번호와 node의 value는 다르다. 1번이라고 해서 무조건 작은 친구비를 갖는게 아님!!!! 위 반례를 통해 그 부분을 수정할 수 있..
-
절차형 재귀함수로 permutation 구현하기PROGRAMMING/C++ 2024. 3. 18. 20:57
모던 c++로 배우는 함수형 프로그래밍을 보다가 절차형 재귀함수로 nPr을 구현하는 걸 봤는데 코드가 너무 아름다워서 기록해놓는다. 절차형 재귀 : 값 반환 없이 각 재귀에서 특정한 작업을 처리 https://product.kyobobook.co.kr/detail/S000001804653 모던 C++로 배우는 함수형 프로그래밍 | 위스누 앤거로 - 교보문고 모던 C++로 배우는 함수형 프로그래밍 | 모던 C++의 새로운 기능과 함수형 프로그래밍을 다룬다. 기능이나 개념별로 예제 코드를 작성하고 실행하며 공부할 수 있도록 구성했다. 기본 문법은 자세 product.kyobobook.co.kr 책이 깊지 않다는 평이 있었는데, 내 실력에 이정도면 충분,,(조금 버겁)해서 좋다. 번역도 좋고 설명도 너무 친절..
-
Modern C++ 알아보기PROGRAMMING/C++ 2024. 3. 17. 20:26
Modern C++의 기본원칙 RAII(Resource Acquisition is Initialization) : 객체와 자원의 라이프 사이클을 일치시키자. C++이후 나온 언어들은 Garbage Collector(GC)라는 자원 청소기가 있어 프로그램에서 더 이상 사용하지 않는 자원을 자동으로 해제해주는 역할을 한다. 하지만 C++의 경우 사용자가 한 번 설정한 자원은 직접 해제해야만 하는데, 이 과정에서 메모리 누수가 일어날 수 있다. 메모리 누수를 방지하기 위해서는, std::unique_ptr와 vector을 이용하는 것도 좋다. - std::unique_ptr은 자원의 소유권을 객체 하나에게만 위임한다. - vector은 동적 배열의 할당과 해제를 직접한다. 즉, RAII에서는 직접적인 new의..
-
윤성우 열혈 C++ 프로그래밍 16장) C++의 형 변환 연산자PROGRAMMING/C++ 2024. 1. 15. 07:24
이 책의 마지막 부분! 형 변환에 대해 정리해보고자 합니다! (혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당) https://product.kyobobook.co.kr/detail/S000001589147 윤성우의 열혈 C++ 프로그래밍 | 윤성우 - 교보문고 윤성우의 열혈 C++ 프로그래밍 | 『C++ 프로그래밍』은 C언어를 이해하고 있다는 가정하에서 집필된 C++ 기본서로서, 초보자에게 적절한 설명과 예제를 통해서 C++ 프로그래밍에 대해 설명한다. 더 product.kyobobook.co.kr 형 변환자 설명 dynamic_cast 1. 유도클래스의 포인터 및 참조형 데이터 → 기초클래스의 포인터 및 참조형 데이터 2. 기초 클래스가 Polymorphic 클..
-
윤성우 열혈 C++ 프로그래밍 15장) 예외처리(try, catch, throw, 스택풀기, 예외클래스, 예외 객체)PROGRAMMING/C++ 2024. 1. 15. 07:03
책 정리 거의 막바지네요ㅎㅎ 달려봅니다! (혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당) https://product.kyobobook.co.kr/detail/S000001589147 윤성우의 열혈 C++ 프로그래밍 | 윤성우 - 교보문고 윤성우의 열혈 C++ 프로그래밍 | 『C++ 프로그래밍』은 C언어를 이해하고 있다는 가정하에서 집필된 C++ 기본서로서, 초보자에게 적절한 설명과 예제를 통해서 C++ 프로그래밍에 대해 설명한다. 더 product.kyobobook.co.kr 예외의 3요소 - 예외의 발생 위치 - 그 예외가 발견된 위치 - 예외가 처리되는 위치 ▪️ 일반적으로는 예외의 발생 위치와 예외가 발견되는 위치가 다르다. try, catch and t..
-
윤성우 열혈 C++ 프로그래밍 13,14장) 템플릿(template)(함수 템플릿, 템플릿 함수, 클래스 템플릿, 템플릿 클래스, 특수화, 부분 특수화)PROGRAMMING/C++ 2024. 1. 12. 23:44
오늘은 템플릿에 대해서 정리해보고자 합니당~! 고고씽! (혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당) https://product.kyobobook.co.kr/detail/S000001589147 윤성우의 열혈 C++ 프로그래밍 | 윤성우 - 교보문고 윤성우의 열혈 C++ 프로그래밍 | 『C++ 프로그래밍』은 C언어를 이해하고 있다는 가정하에서 집필된 C++ 기본서로서, 초보자에게 적절한 설명과 예제를 통해서 C++ 프로그래밍에 대해 설명한다. 더 product.kyobobook.co.kr 함수 템플릿과 템플릿 함수 // 함수 템플릿 template T Add(T num1, T num2){ return num1 + num2; } // 템플릿 함수 int Add..
-
윤성우 열혈 C++ 프로그래밍 11장) 연산자 오버로딩 2(대입연산자, 오버로딩, 함수 오버로딩, 스마트포인터, 펑터)PROGRAMMING/C++ 2024. 1. 8. 23:05
오늘 내용은 진짜 기억이 1도 안나서 아침에 읽다가 슬펐다.. 🥶 아좌좌 슬퍼하지말고!! 유튭에서 강의로 본 내용까지 깔끔하게 정리해보려고 한다. (혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당) https://product.kyobobook.co.kr/detail/S000001589147 윤성우의 열혈 C++ 프로그래밍 | 윤성우 - 교보문고 윤성우의 열혈 C++ 프로그래밍 | 『C++ 프로그래밍』은 C언어를 이해하고 있다는 가정하에서 집필된 C++ 기본서로서, 초보자에게 적절한 설명과 예제를 통해서 C++ 프로그래밍에 대해 설명한다. 더 product.kyobobook.co.kr 대입연산자 복사 생성자와의 공통점 : 정의하지 않으면 디폴트가 삽입되며 얕은 복사..
-
윤성우 열혈 C++ 프로그래밍 10장) 연산자 오버로딩 1(operator+, operator++, operator-, operator--, operator<<)PROGRAMMING/C++ 2024. 1. 7. 22:16
다음주 안에 끝내버린다는 마음으로! C++에서 중요한 연산자 오버로딩을 정리해보고자 한다. (혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당) https://product.kyobobook.co.kr/detail/S000001589147 윤성우의 열혈 C++ 프로그래밍 | 윤성우 - 교보문고 윤성우의 열혈 C++ 프로그래밍 | 『C++ 프로그래밍』은 C언어를 이해하고 있다는 가정하에서 집필된 C++ 기본서로서, 초보자에게 적절한 설명과 예제를 통해서 C++ 프로그래밍에 대해 설명한다. 더 product.kyobobook.co.kr 연산자 오버로딩 - 멤버함수에 의한 방법 👈🏻추천하는 방법 - 전역함수에 의한 방법(friend 사용) 만약 멤버함수와 전역함수에 의한 ..