백준 15657 (DFS, 백트래킹)
하고싶은거/알고리즘 문제풀이2024. 4. 15. 22:50백준 15657 (DFS, 백트래킹)

15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 과정 이전에 풀었던 문제 2가지를 섞은 유형이다. 1부터 시작이 아닌 주어지는 숫자들을 오름차순으로 정리, 같은 수를 골라도 되지만 반드시 오름차순으로 수열을 구성할 것. 백준 15654 (DFS, 백트래킹) 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M ssin-estella.tistory...

백준 15654 (DFS, 백트래킹, 정렬)
하고싶은거/알고리즘 문제풀이2024. 4. 14. 13:38백준 15654 (DFS, 백트래킹, 정렬)

15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 과정 [C++/백준문제] - 백준 15650, 15652 (DFS) 백준 15650, 15652 (DFS) 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하 ssin-estella.tistory.com 이거랑 비슷한 문제인데 1부터 시작이 아니다. : 때문에 오름차순으로 정렬을 해줘야한다. 본인은 포함하지..

타입 변환 연산자
하고싶은거/C++2024. 4. 13. 15:00타입 변환 연산자

c++에서는 기존의 데이터형을 다른 데이터형태로 변환하는 "캐스팅" 이라는 과정이 있다. 캐스팅자세한 정보: 캐스팅learn.microsoft.com이러한 캐스팅을 해주는 타입(형)변환 연산자(캐스팅 연산자)가 있는데dynamic_caststatic_castconst_castreinterpret_cast가 있다.C++ 캐스트 연산자 형태static_cast(변경할 대상);static_castc언어의 형변환 문제점을 줄인 방식이다.컴파일 타임에 타입 검사를 제공하고, 강제변환이 아닌 논리적으로 가능한 타입에 대해서만 캐스팅을 진행한다.→ 따라서 컴파일에러로 잡아낼 수 있다.dynamic_cast상속관계에서 다운 캐스팅을 할 때 안전하게 캐스팅을 할 수 있다.+ 다운캐스팅?: 부모클래스 객체가 자식클래스 타..

스마트 포인터
하고싶은거/C++2024. 4. 12. 14:27스마트 포인터

스마트 포인터는 c++11부터 지원하는 기능으로, 메모리관리를 위한 기능이다. c++는 new를 사용해서 포인터로 실제 메모리를 가리키도록 하는데, new를 사용할 경우 다 사용한 후에 메모리를 해제해줘야 한다.(delete, nullptr) 그래서 스마트 포인터를 사용해서 자동으로 메모리 해제를 해서 메모리 관리의 효율성을 높힐 수 있다. Part1 12. 언리얼 엔진 메모리 관리UObject 선언 기본 원칙 언리얼 오브젝트 포인터 : UPROPERTY 선언 메모리 : 가지비컬렉터가 자동으로 관리하도록 위임 언리얼 엔진 자동 메모리 관리 C++ 메모리 관리 문제점 : 저수준으로 메모리 주ssin-estella.tistory.com이전 언리얼엔진의 가비지컬렉션과 비교하여 언리얼오브젝트가 아닌 c++오브젝..

비선형구조 : 트리
하고싶은거/자료구조&알고리즘 공부2024. 4. 12. 13:38비선형구조 : 트리

선형 구조 : 자료를 순차적으로 나열한 형태 배열 연결 리스트 스택/큐 비선형 구조 : 하나의 자료 뒤에 다수의 자료가 올 수 있는 형태 트리 그래프 트리 구성 요소 (너무.. 깔끔한 그림;) 트리는 그래프와 비슷한 구성 요소를 갖는데, 그래프의 정점 → 트리의 노드 이다. 또한, 그래프와 살짝 비교될만한게, 트리는 계층구조를 가지고 있다. 그래서 부모노드, 자식노드 이런 용어가 생긴 것. 레벨 vs 높이 vs 깊이 아파트로 비교했을 때, 레벨 : 각 층 여기는 0층, 여기는 3층 이런식으로 (루트 노드부터 노드까지 연결된 간선 수의 합) 높이 : 이 아파트의 최고 높이 (가장 긴 루트 경로의 길이) 깊이 : 해당 층수까지의 높이 = 레벨 (루트 경로의 길이) Heap Tree (우선순위 큐) 힙트리는 ..

백준 15650, 15652 (DFS)
하고싶은거/알고리즘 문제풀이2024. 4. 12. 11:24백준 15650, 15652 (DFS)

15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 과정 처음 보자마자 다중 for문이 생각났다. 다중 for문이면 대부분 DFS로 풀 수 있던걸 생각해서 DFS로 접근 처음에는 감이 안잡혔는데, 다음 그림을 그리게 된다. 1~6까지 수를 기준으로 3개의 숫자를 가진 수..

백준 12865 (DP)
하고싶은거/알고리즘 문제풀이2024. 4. 11. 16:04백준 12865 (DP)

12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 과정 처음에는 DP : 자신을 포함하는 물건들의 최대 가치 를 담는 용도였다. #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N = 0; // 물건의 수 int K = 0; // 최대 무게 int W = 0; // 물건의 무게 i..

백준 11725 (트리, DFS)
하고싶은거/알고리즘 문제풀이2024. 4. 10. 19:13백준 11725 (트리, DFS)

11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 과정 대놓고 트리라고 하니까.. 그냥 DFS로 작성했다. 부모만 찾으면 되는 문제라 간단하지만;; vector선언과 메모리크기를 초기화하는 과정에서 vector와 array의 차이를 잘 모르고 있었던 것 같다. 나는 지금까지 왠만하면 vector의 크기를 MAX로 미리 고정하지 않고 resize를 통해 정해줬다. (그게 메모리적으로 이득이니까) 근데 이번 문제는 vector의 장점을 이용해서 하나의 index안에 여러값을 push_back 해야한다. 근데 이럴 경우, 선언 자체를 메모리값이 0인채로 해서 그런지 오류가 발생한다..

백준 11660 (DP, 행렬)
하고싶은거/알고리즘 문제풀이2024. 4. 9. 12:46백준 11660 (DP, 행렬)

11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 과정 x2-x1, y2-y1 범위에 들어있는 숫자를 for문으로 더할까 하다가 그럼 시간초과가 날 것 같아서 애초에 숫자를 받을 때, 같은 열!!!!! 기준으로 누적값을 벡터에 저장한 후, 범위를 받아서 최대좌표의 누적값 - 최소 좌표의 누적값 을 했다. 이 문제를 풀 때 가장 시간이 오래걸린 점은 바로 행렬을 개같이 못했다는 점이다. 행 = Row = x값 = 가로 열 = Column = y값 = 세로 코드 #inclu..

비선형 구조 : 그래프 DFS, BFS, 다익스트라
하고싶은거/자료구조&알고리즘 공부2024. 4. 8. 17:15비선형 구조 : 그래프 DFS, BFS, 다익스트라

선형 구조 : 자료를 순차적으로 나열한 형태 배열 연결 리스트 스택/큐 비선형 구조 : 하나의 자료 뒤에 다수의 자료가 올 수 있는 형태 트리 그래프 그래프 구성 요소 정점(Vertex) : 데이터 간선(Edge) : 정점들을 연결하는데 사용 가중치 그래프 : 각 간선에 가중치(중요도, 거리등)가 있는 그래프 방향 그래프 : 정점간의 방향이 있는 그래프 DFS 깊이 우선 탐색 Depth First Search 막다른 길(더이상 연결된 간선이 없을 때 까지)이 나올 때까지 정점을 계속 방문 하는 그래프 끝까지 갔다가 다시 시작 정점으로 돌아오는 부분은 재귀함수로 구현할 수 있다. 그래프의 전체적인 모양을 파악하기 쉽다. void Dfs(int here) { // 방문 visited[here] = true;..

image