CodeTree(코드 트리) - DP
·
알고리즘(Algorithm)
[코드트리] 시뮬레이션 알고리즘 약점 극복 학습 후기지난 글에서는 코드트리 No Free Lunch 2026 청약챌린지를 시작하면서 갭체크를 진행했고, 그 결과를 통해 내 현재 위치를 확인했다. 당시 가장 크게 느낀 점은 “아는 문제는 확실히 풀지만, 모르는 유형은 접근조차 못 한다”는 것이었다. 특히 시뮬레이션 유형에서 그런 약점이 분명하게 드러났다.그래서 이번에는 코드트리의 Trail1을 따라가며, 내가 약하다고 느낀 시뮬레이션 유형을 중심으로 학습을 진행해 보기로 했다.코드트리 Trail: https://www.codetree.ai/ko/trail-infoNo Free Lunch 2026 청약챌린지: https://www.codetree.ai/ko/no-free-lunch-2026코드트리 커리큘럼을..
CodeTree(코드 트리) - Trail 1부터
·
알고리즘(Algorithm)
코드트리 No Free Lunch 2026 청약챌린지 시작!갭체크로 확인한 나의 현재 위치와 Trail1 학습 계획코드트리에서 진행하는 2026 청약챌린지 를 시작했다.본격적으로 문제를 풀기 전에 먼저 갭체크를 진행했는데, 결과를 보면서 내 현재 상태를 꽤 명확하게 알 수 있었다.결론부터 말하면,아는 건 확실하게 아는데, 모르는 건 손도 대지 못한다.갭체크 결과를 보고 느낀 점갭체크 결과를 보면 내가 이미 알고 있는 개념의 문제들은 비교적 빠르고 안정적으로 해결했다.예를 들어 기본 출력, 단순 반복문, 2차원 배열처럼 이전에 어느 정도 익숙했던 개념들은 큰 어려움 없이 풀 수 있었다.하지만 반대로 시뮬레이션처럼 아직 충분히 익숙하지 않은 개념이 나오자, 문제를 시도조차 하지 못했다.단순히 시간이 부족해서..
Baekjoon 6550.ALL IN ALL(부분 문자열) c++ [Silver V]
·
Baekjoon/Silver
Contents풀이입력은 여러 개의 테스트 케이스s,t 10만을 넘지 않음 -> O(n)문자 하나씩 비교하면서 s가 완성되면 "Yes" 완성되지 못하면 "No"코드#include #include using namespace std;string is_subsequence(const string &s, const string &t){ int s_idx = 0, t_idx = 0; while (s_idx > s >> t) { cout
Baekjoon 2805.EKO(나무자르기) c++ [Silver II]
·
Baekjoon/Silver
이분탐색정렬된 범위에 특정 값을 찾거나 최적의 값을 구할 때 사용 left =0, right는 max로 설정 mid값을 잡아서 조건에 만족하는 최댓 값을 찾을 때까지 위해 반복#include #include #include using namespace std;typedef long long ll;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N, M; cin >> N >> M; vector trees(N); for (int i = 0; i > trees[i]; } int left = 0, right = *max_element(trees.begin(), tre..
Baekjoon 2003.수들의 합2 c++ [Silver IV]
·
Baekjoon/Silver
Two pointer 기법오른쪽으로 이동하면서 값을 더해 sum==M일 때 count를 올려주고, 해당 값이 M을 넘었을 때, left의 위치와 비교해서 지금까지 더해온 값을 모두 빼주며 sum을 초기화한다#include #include using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N, M; cin >> N >> M; vector A(N); for (int i = 0; i > A[i]; } int left = 0, right = 0, sum = 0, count = 0; while (right M && left
Baekjoon 15650.N과 M (2) c++ [Silver III]
·
Baekjoon/Silver
#include #include using namespace std;void check(int N, int M, int start, vector &comb){ if (comb.size() == M) { for (int c : comb) cout > N >> M; vector combination; check(N, M, 1, combination); return 0;} 15652. N과 M(4)초기 숫자부터 다시 시작하도록 i+1에서 i로 바꾸면 된다#include #include using namespace std;void check(int N, int M, int start, vector &comb){ if (comb.size() == M..