본문 바로가기

전체 글78

[개쉬운 풀이] 백준 3687 성냥개비 CPP (13일차) 문제 생각단순한 DP문제라고 생각했다. 그러나 초기값만 수동으로 설정하는 것이 싫어서 고민하던 도중, 그냥 수동으로 설정하였다.이때 앞자리가 0이되면 안되는 것을 고려해야한다. 1. 작은 수작은 수는 2~8개 를 사용하면 이렇게 나온다. {0,0,1,7,4,2,0,8,10}그러나 여기서 앞자리가 0이 될 수 없으므로 6개는 6으로 재초기화한다.이후 성냥개비는 각각 2~7개 까지 각 숫자에 사용될 수 있으므로 현재 숫자에 2~7개를 뺀 숫자의 dp를 확인하여 숫자를 만들어 나간다.dp[n] = min(dp[n], dp[n-(성냥개비 가능 갯수)] * 10 + 초기 성냥개비 숫자[성냥개비 가능갯수]) 가 된다. 2. 큰 수패턴을 보면 7과 1로만 이루어진다. 즉 짝수면 1로 시작하고 홀수면 7로 시작하면 된.. 2024. 12. 4.
[개쉬운 풀이] 백준 1806 부분합 CPP (12일차) https://www.acmicpc.net/problem/1806 문제 생각1. 연속된 부분합이라는 단어를 보고 투포인터를 고려하였다. 2. 부분합 중에서 합이 S 이상이 되는 것 중, 가장 짧은 길이를 구하여야 한다.3. 그렇다면 누적합보다 크거나 같으면 왼쪽에서 빼고, 작으면 오른쪽을 더하면 된다. 풀이#include #include using namespace std;int N;long long S;vector v;void input(){ cin >> N >> S; for(int i = 0; i > x; v.push_back(x); }}void sol(){ if(v[0] == S){ cout = S){ answer = min(answ.. 2024. 12. 3.
[2024 AOC] 2일차 CPP https://adventofcode.com/2024 Advent of Code 2024 adventofcode.com 문제 1번 풀이#include #include #include using namespace std;const int INPUT_MAX = 1000;const int DIFF_LEVEL = 3;bool sol(vector v){ bool increase = true; for(int i = 0; i DIFF_LEVEL) return false; if(v[i] == v[i+1]) return false; if(i == 0){ increase = v[i] = v[i+1]) return false; } .. 2024. 12. 3.
[RUST] TRPL : Chapter 13 - Iterators & Closures Chapter 13 - Iterators & ClosuresClosures : 클로저변수에 저장하거나 다른 함수에 인수로 전달할 수 있는 익명 함수. 한 곳에서 클로저를 만든 다음 다른 곳에서 클로저를 호출하여 다른 컨텍스트에서 평가할 수 있다.람다와 비슷함.장점값을 캡처하면 추가적인 메모리 복사가 발생하지만, 참조로 캡처하면 메모리 사용이 최소화됨.클로저 유형 추론 및 주석함수와 클로저 사이에는 더 많은 차이점이 있다.클로저 : 일반적으로 함수처럼 매개변수나 반환 값의 유형에 주석을 달 필요가 없다.노출된 인터페이스에서 사용되지 않는다. → 유형 추론한번 호출되어서 유형이 추론된 경우, 다른 유형으로 호출할 수 없다.물론, 명확성을 높이기 위해 유형 주석을 추가할 수 있다. ex → |num: u32|.. 2024. 12. 2.