[java] 백준 11047 동전 0
·
Algorithm/Baekjoon
//동전 종류 N//동전 가치의 합 K//동전의 개수 나와있지 않지만 많음?//내림차순으로 최대한 금액넣기import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int K = in.nextInt(); int[] coins = new int [N]; for(int i = 0; i = 0; i--) { result += K / coins[i]; K = K % coins[i]; if ..
[C++] 스마트 포인터
·
C++/Basic
auto_ptr#include auto_ptr ap(new double);*ap = 25.5;- memory헤더 파일을 소스코드에 포함해야한다.- 메모리가 해제될 때 ap를 해제하고 ap의 파괴자가 동적메모리를 해제한다.- new로 생성한 단일 객체에 대해서만 메모리의 해제를 보장한다.- 동일한 메모리 위치를 가리키는 객체를 2개 이상 생성하지 않아야 한다는 점입니다.- C++11이 지원되는 환경이라면 auto_ptr을 완전히 대체하는 unique_ptr을 사용하면 됩니다. auto_ptr ap(new double);auto_ptr ap2;*ap = 25.5;ap2 = ap;cout - 다음과 같을 때 ap는 ap2에 소유권을 넘기게된다. 더 안전하다고 할 수 있다. unique_ptrunique_ptr..
우측값(rvalue)에 대하여
·
C++/Effective Modern
C++에서는 rvalue 참조(&&)와 이동연산자(move constructor 및 move assignment operator)를 통해 효율적인 메모리 관리를 할 수 있습니다. 이 글에서는 이러한 개념들을 자세히 설명하고, 이를 통해 성능 최적화 방법을 이해할 수 있도록 하겠습니다.rvalue 참조 (&&)rvalue 참조는 C++11에서 도입된 기능으로, 주로 이동생성자(move constructor)와 이동할당 연산자(move assignment operator)를 구현하는 데 사용됩니다.lvalue와 rvaluelvalue는 식별 가능한 위치를 가지는 값입니다. 예를 들어, 변수는 lvalue입니다.rvalue는 임시 값으로, 식별 가능한 위치를 가지지 않는 값입니다. 예를 들어, 리터럴이나 연산..
[C++] 백준 1149 RGB거리
·
Algorithm/Baekjoon
#include #include #include #include using namespace std;int main() { int n; cin >> n; vector house(3, 0); for (int i = 0; i > color[0] >> color[1] >> color[2]; result[0] = min(house[1] + color[0], house[2] + color[0]); result[1] = min(house[0] + color[1], house[2] + color[1]); result[2] = min(house[0] + color[2], house[1] + color[2]); house[0] = result[0];..
[C++] 백준 2156 포도주 시식
·
Algorithm/Baekjoon
#include #include #include #include using namespace std;//포도주를 선택하면 다 마시고 원래 위치에 놓는다.//1~n까지 번호//n개의 포도주// //연속으로 놓여있는 3잔을 모두 마실 수는 없다.//가장 많은 양의 포도주를 마셔라.//1이상 10000이하의 n//입력//첫째줄 n개//둘째줄 n + 1번째까지 포도주의 양 0이상 1000이하int main() { int n; cin >> n; vector grape(n, 0); vector dp(n, 0); for (int i = 0; i > grape[i]; } //dp0 grape0 //dp1 grape1 + dp0 //dp2 grape2 + dp0(grape..
[C++] 백준 1912 연속합
·
Algorithm/Baekjoon
#include #include using namespace std;int main(){ int result = -1001; vector dp; int n; cin >> n; for (int i = 0; i > temp; dp.push_back(temp); } result = max(dp[0], result); for (int i = 1; i  풀이1. 우선 결과 값을 쌓아가면서 먼저 계산을 해본다. dp적 사고를 통해 이전 값+현재값과 현재값을 비교를해준다.2. max를 계속 업데이트하면서 가장 큰 값을 저장한다.3. 현재 값보다 쌓아온 값이 더 작으면 갱신된다. 느낀점아직도 dp적사고가 되지않는 것 같다. 좀 더 점화식을 세우는 것을 연습해야겠다. https://www.acmicpc.net/prob..