[코드트리 후기] 북마크로 나만의 복습 루틴 만들기
·
카테고리 없음
코딩테스트 공부를 하다 보면 문제를 푸는 것만큼 중요한 것이 “다시 풀 문제를 어떻게 관리할 것인가”라고 생각합니다. 처음에는 틀린 문제나 어려웠던 문제를 그냥 머릿속으로 기억하려고 했지만, 시간이 지나면 어떤 문제를 왜 어려워했는지 금방 잊어버렸습니다. 그래서 최근에는 코드트리의 북마크 기능을 활용해 문제를 단순히 저장하는 것이 아니라, 나만의 복습 폴더처럼 관리하려고 하고 있습니다.코드트리는 여기에서 확인할 수 있습니다.https://www.codetree.ai/나만의 북마크 분류 기준저는 북마크한 문제를 난이도만 기준으로 나누지 않습니다. 오히려 “내가 왜 이 문제를 다시 봐야 하는가”를 기준으로 분류하는 편입니다. 예를 들어, 한 번에 풀었지만 풀이가 지저분했던 문제, 접근법을 떠올리지 못했던 문..
[코딩테스트 독학] 알림톡으로 바쁜 시험기간에도 코드트리 1일 1문제 루틴 유지하기
·
카테고리 없음
대학생에게 시험기간은 평소 엄격하게 유지하던 학습 루틴을 가장 강하게 위협하는 시기입니다. 전공 시험공부와 과제, 팀 프로젝트가 한꺼번에 몰아치다 보면 코딩테스트 준비는 우선순위에서 자연스럽게 밀리기 일쑤입니다. 한 번 흐름을 놓치면 시험이 끝난 후 다시 공부를 시작하기까지 몇 배의 의지력이 필요하고, 그동안 어렵게 쌓아 올린 연속 학습 기록이나 깃허브 잔디가 깨지는 것을 보며 큰 무력감을 느끼기도 합니다.이번 주가 저에게는 딱 그런 위기의 시기였습니다. 밀려드는 전공 시험공부 때문에 컴퓨터 앞에 진득하게 앉아 알고리즘 문제의 풀이 과정을 설계하고 최적화를 고민할 여유가 도저히 나지 않았습니다. 하지만 이러한 악조건 속에서도 코드트리가 제공하는 특별한 동기부여 시스템 덕분에 완벽하게 흐름을 놓치지 않고,..
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차원 배열처럼 이전에 어느 정도 익숙했던 개념들은 큰 어려움 없이 풀 수 있었다.하지만 반대로 시뮬레이션처럼 아직 충분히 익숙하지 않은 개념이 나오자, 문제를 시도조차 하지 못했다.단순히 시간이 부족해서..
프로그래머스 상품 별 오프라인 매출 구하기[lv.2]
·
Programmers/SQL
https://school.programmers.co.kr/learn/courses/30/lessons/131533👉 같은 제품의 코드끼리 묶기👉 총 판매 개수에 가격 곱하기👉 JOIN ON 구문 사용하기 (WHERE 구문도 상관 없음)👉 문제에서 요구하는 정렬조건 따라가기-- 코드를 입력하세요SELECT P.PRODUCT_CODE, (P.PRICE * SUM(S.SALES_AMOUNT)) AS SALES FROM PRODUCT P JOIN OFFLINE_SALE S ON P.PRODUCT_ID = S.PRODUCT_IDGROUP BY P.PRODUCT_CODEORDER BY SALES DESC, P.PRODUCT_CODE;-- 코드를 입력하세요SELECT P.PRODUCT_CODE, (P.PRI..
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
SQL 고득점 Kit - SELECT
·
Programmers/SQL
Contents3월에 태어난 여성 회원 목록 출력하기SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTHFROM MEMBER_PROFILE WHERE GENDER = 'W' AND DATE_OF_BIRTH LIKE '%-03-%'AND TLNO IS NOT NULLORDER BY MEMBER_ID ASC;서울에 위치한 식당 목록 출력하기SELECT R.REST_ID, R.REST_NAME, R.FOOD_TYPE, R.FAVORITES, R.ADDRESS, ROUND(AVG(RV.REVIEW_SCORE), 2) AS SCOREFROM REST_INFO RJOIN REST..
대소문자 바꿔서 출력하기 c++ [LV.0]
·
Programmers/TIP
ASCII 코드에서 대문자와 소문자의 차이영어 알파벳은 ASCII 코드에서 대소문자가 일정한 차이를 가지고 있다.문자ASCII 코드(10진수)ASCII 코드(2진수)'A'6501000001'a'9701100001'B'6601000010'b'9801100010.........'Z'9001011010'z'12201111010대소문자의 차이: 6번째 비트(0x20, 32)소문자의 ASCII 값은 대문자의 ASCII 값보다 항상 >32.'a' (97) - 'A' (65) = 32'b' (98) - 'B' (66) = 32이진수에서는 6번째 비트를 XOR연산을 사용해 반전XOR 연산 (c ^= 32) 코드#include #include using namespace std;string swap(string s){ ..
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