![(백준/ C++) 11049 - 행렬 곱셈 순서 / 다이나믹 프로그래밍](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoDdwL%2FbtsICjKuV8o%2F8Zk8UgsbLmkb8Nh96K2TEk%2Fimg.png)
"(백준/ C++) 11049 - 행렬 곱셈 순서 / 다이나믹 프로그래밍" 해도해도 어려운 DP .. 혼자 못 풀었다. 유투브 설명 보고 풀었다 .. ㅠㅠ 핵심은 AEH 사이의 (ABCDE) (FGH)가 어떠한 방법으로 연산을 했든지 간에 (ABCDE) 의 최종행렬의 크기는 { a , f } (FGH)의 최종행렬 크기는 { f , i }가 된다. 라는 사실이다. 점화식: a x f x i + Func(x , k) + Func (k+1, y) //== [ 행렬 곱셈 순서 ] ==#include #include #include using namespace std;int col[500], row[500];int dp[500][500];int func(int idx_x, int idx_y){ if (d..
![(백준/ C++) 1106 - 호텔 / 다이나믹 프로그래밍](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1N6Mm%2FbtsIvVhJWRN%2FOZrXK7hJyWIseAWzWIOad1%2Fimg.png)
" (백준/ C++) 1106 - 호텔 " https://www.acmicpc.net/problem/1106 1106 - 호텔첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 대는 비용과 그 비용으로 얻을 수 있는 고객의 수가 주어진다. 이 값은 100보다 작거나 같은 자연수이다.www.acmicpc.net 이 문제는 냅색과 비슷하다.다른 점이 있다면 중복으로 넣을 수 있는 점? 냅색 문제는 물건 하나 씩 넣는다. 가장 간단해보이는 예제 입력1번을 보고 DFS를 이용하여 풀 수 있는 방법을 고민해봤다. " C명(12명)을 확보하면서 최소의 비용이 들어..
![(백준/ C++) 2629 - 양팔저울](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctaNjW%2FbtsItIB6zoO%2F2FfeeEhbnGo7pRagwYmkv1%2Fimg.png)
"(백준/ C++) 2629 - 양팔저울"https://www.acmicpc.net/problem/2629 아마 .. 양팔저울 문제 설명에 냅색 알고리즘으로 푸는 문제라고 적혀 있지 않으면 오랫동안 못 풀었을거 같다.. ^^;; 냅색과 같이 나올수 있는 무게의 경우를 만드는 방식으로 풀이를 했다. 점화식은 (가)저울에만 추를 둘수 있다고 생각 하고 경우의 수를 고려하였다. (가)에 A추가 있는 경우 → (가) A추 + 구슬 = (나) B추 → (가) 구슬 = (나) B추 - A추 (나)에 A추가 있는 경우 → (가) 구슬 = (나) B추 + A추(가), (나)에 A추가 모두 없는 경우 → (가) 구슬 = (나) B추 처음에는 이분탐색으로 찾으려 했으나 메모리 문제로 실패 ! DP[비교대상개수][무게..
![[c++17] 전문자를 위한 c++17 새로운 내용 북마크](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH3lZX%2FbtsFGqxSJAh%2FmKEe7KW0X9rn98ZGVXISNK%2Fimg.png)
c++17에 추가된 문법을 도서 "전문가를 위한 C++17(개정4판)"에서 빠르게 찾기 위해서 정리해보았다. page 58중첩된 네임스페이스 (nested namespace)61std::byte69if문의 이니셜라이저(intializer : 초기자)72switch문의 이니셜라이저(intializer : 초기자)81구조적 바인딩(structured binding)138로우 레벨 숫자 변환 "}">#include 140std::string_view클래스298weak_ptr도 shared_ptr와 마찬가지로 C스타일 배열을 지원한다.299weak_from_this()390static 데이터 멤버를 inline으로 선언할 수 있다.530std::as_const() 헬퍼 메서드 "}">#include (obj)..
![[디자인 패턴] 생성 패턴 - 2. 싱글턴 (singleton)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYxlhs%2FbtsrYzve5tc%2FwGuxZmdLZOkGlNHf7AXN5k%2Fimg.png)
** 싱글턴 패턴이란? ** 🌟 정의 / 특징 1. 싱글턴(singleton)이란 디자인 패턴 중 가장 간단한 패턴으로 '어떤 객체 하나'를 의미한다. 싱글턴 패턴은 프로그램에 클래스의 인스턴스가 딱 하나만 존재하도록 하는 디자인 패턴이다. 2. 외부 시스템과 상호작용하는 유틸리티 클래스 또는 전역 상태를 관리하는 클래스 구현에 적합하다. ex. 데이터 베이스 로드, 파일 시스템 로드, 공용 gui등(게임에서 팝업 창 or 툴팁창 ..), 로거(logger) 🔸 여기서 잠깐 !! 🔸 * 인스턴스와 객체의 차이는 무엇일까? 간단히 말해 객체는 선언이고 인스턴스는 실체화이다. 객체 지향 프로그래밍에서 해당 클래스의 구조로 컴퓨터 저장공간에 실제로 독립된 데이터 공간에 메모리를 가지게 되면 그것을 인스턴스화라..
![[C++] Map의 Key로 Class/Struct 넣기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkBZMZ%2FbtsBGUxcfrd%2FAFwaBlIb4QavgYsvkqXvT0%2Fimg.png)
오늘은 "호랭이아인교" 병아리 블로그를 운영하는 김드스님의 포스팅을 훔쳐왔다 !! 똑같이 포스팅 해도 된다고 허락을 받았기 때문에 출처를 밝히고 거의 80% 같은 내용을 포스팅한다. 고마워요 김드스님 ~ ** Map의 Key 값으로 Class/Struct 넣기 ** 🎃목표 map의 key값으로 기본적인 데이터 타입(int, string, float, double...)이 아닌 우리가 직접 만든 타입(user defined type)을 넣어보자. 🎃특징 Map은 key(키)와 Value(값)이 쌍으로 이루어진 자료구조로 키를 통해 값에 접근 할 수 있도록 만들어져 있다. map은 key(키)의 중복을 허용하지 않고, value(값)의 중복은 허용한다. c++의 map은 레드블랙트리를 기반으로 구현이 되어있..
![[디자인 패턴] 생성 패턴 - 1. 팩터리 Factory](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ0l5H%2FbtsqJr5oYPp%2F8CN0vKkEqV5ekrJOjMrw6K%2Fimg.png)
** 팩토리 패턴이란? ** 🌟 정의 객체를 생성할 때 그 객체의 생성자를 직접 호출하지 않고, 객체 생성을 담담하는 팩토리에 요청하는 구조를 뜻한다. 🌟 장점 1. 객체를 생성하는 코드가 프로그램의 이곳저곳에 산만하게 흩어지지 않고 객체를 생성하는 기능을 한 곳에 모아둘 수 있다. 2. 클래스 타입을 정확히 몰라도 클래스 계층에 맞게 객체를 생성할 수 있다. 3. 팩토리는 클래스 계층에 따라 실행할 수 있다. 4. 객체를 정확한 순서로 생성하려면 복잡한 단계가 필요하거나, 생성된 객체를 항상 다른 객체와 일정한 방식으로 연결해야 할 때 팩토리를 사용하면 편하다. ** 팩토리 종류 ** 🌟 정적 팩터리 메서드 (static factory method) 객체를 생성해서 리턴하는 함수. class Point..
![(백준/ C++) 11438 - LCA 2 / 효율적인 LCA(+sparse table)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd3vK8p%2FbtrXN4ZAa7L%2FU37KkvUdKLPSm4GHAJk9Ak%2Fimg.png)
11438번: LCA 2 (acmicpc.net) 11438번: LCA 2 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net 희소 테이블에 대해 모른다면 풀기 어려운 문제 일거 같습니다. 풀기전에 희소 테이블로 워밍업을 하고 천천히 풀어보자. 아래 주소는 희소 테이블에 관한 문제입니다. [Algorithm/ Sparse Table (희소테이블)] 백준 17435번과 함께 (tistory.com) [Algorithm/ Sparse Table (희소테이블)] 백준 17435번과 함께 Sparse Table (스파스 테이블) 특징 방..
![(백준/ C++) 2470 - 두 용액](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmgwS2%2FbtrLwJFYyQA%2FtzhqkTs0q48m7wJOV1C7X1%2Fimg.png)
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 1. 두 수의 합이 0과 가장 가까운 것(음수도 있을 수 있음)을 찾아야 한다. ▶▷ 두 수의 합을 구하고 절댓값으로 비교한다. 2. 주어진 수는 정렬 돼서 주어지지 않는다. ▶▷ 정렬을 후, 투 포인터의 조건을 만들어준다. ※ ex) "백준 1644 - 소수의 연속함" 투 포인터 인덱스 움직임의 조건: sum이 N보다 작으면 t..
![(백준/ C++) 4673 - 셀프 넘버](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkxHCQ%2FbtrLhs4AuhK%2FG9gU5Fb7ucMrCGEkfwHej0%2Fimg.png)
4673번: 셀프 넘버 (acmicpc.net) 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net