📝 주간 학습 회고 (TWL) - 2025년 03월 W주차🎯 이번 주 목표 분할 정복 정복 하기 스택, 큐, 우선순위 큐 문제를 풀며 발견한 추가 키워드 정리📚 학습한 내용정렬분할 정복슬라이딩 윈도우스택, 큐, 우선순위 큐💡 새롭게 알게 된 것슬라이딩 윈도우고속 거듭제곱 알고리즘def power(a,b,m): result = 1 while b > 0: if b % 2 != 0: result = (result * a) % m b //= 2 a = (a * a) % m return result🔍 어려웠던 점 / 해결 방법어려웠던 점해결 방법2주차 문제의 난이도가 올라가 문제가 이해되지 않았다.필기를 통한 정리와 동기들과의 대화..
TIL - 2025.03.23 (일요일)📝 오늘 배운 것 (슬라이딩 윈도우 알고리즘)슬라이딩 윈도우 알고리즘 (Sliding Window)슬라이딩 윈도우는 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘이다.교집합의 정보를 공유하고, 차이가 나는 양쪽 끝 원소만 갱신하는 방법이다.배열이나 리스트의 요소의 일정 범위 값을 비교할 때 사용하면 좋다.투 포인터 알고리즘과 연동하여 많이 사용된다.주로 정렬된 배열을 대상으로 하는 투 포인터와 달리 슬라이딩 윈도우는 정렬 여부에 관계없이 활용된다.좌측의 투 포인터는 주로 정렬된 배열을 대상으로 한다. [1,2,3,4,5]가 모두 순서대로 정렬되어 있으며, 처음에는 2개의 포인터가 1과 5를 가리키고 있으나 그다음에는 ..
TIL - 2025.03.22 (토요일)📝 오늘 배운 것 (CSAPP 1-5 ~ 1.7)1.5 캐시가 중요하다.앞선 예제로부터 얻을 수 있는 중요한 교훈은 시스템이 정보를 한 곳에서 다른 곳으로 이동시키는 일에 많은 시간을 보낸다는 것이다.hello 프로그램의 기계어 인스트럭션들은 본래 하드디스크에 저장되어 있다가 프로그램이 로딩될 때 메인메모리로 복사된다. 프로세서가 프로그램을 실행할 때 인스트럭션들은 메인 메모리에서 프로세서로 복사된다."hello, world\n" 데이터 스트링도 본래는 디스크에 저장되어 있었다가 메인 메모리로 복사되었다가 디스플레이 장치로 복사된다. 프로그래머의 관점에서 이러한 여러 복사과정들이 프로그램의 실제 작업을 느리게 하는 오버헤드이다.그래서 시스템 설계자들의 주요 목적은..
TIL - 2025.03.21 (금요일)📝 오늘 배운 것 (분할 정복 알고리즘 (Divide and Conquer))분할 정복 알고리즘이란분할 정복 알고리즘(Divide and Conquer Algorithm)은 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 해결하는 방법이나 알고리즘이다.분할 정복 알고리즘은 재귀적인 방법을 통해 문제를 해결하며, 대표적인 예시로 이진탐색(Binary Search), 병합 정렬(Merge Sort), 퀵정렬(Quick Sort)이 예로 들 수 있다.동적계획법(Dinamic Programming)과 다른 점다이나믹 프로그램 역시 한 문제를 작게 나눈 다는 점에서 유사한 접근 방식을 가지고 있지만 차이가 있다.분할 정복 - 문제를 작게 나누어 해결하고, 이 해결을 결..
TIL - 2025.03.20 (목요일)📝 오늘 배운 것 (이분 탐색/이진 탐색)이진 탐색(이분 탐색)이진 탐색(이분 탐색) 은 리스트가 정렬되어 있는 상태일 때(필수 !!) 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.정말 필수 적으로 정렬이 되어 있는 상태의 데이터 셋에서 탐색을 진행해야 한다.시작, 종료, 중간을 나타내는 변수 값을 이용해 데이터를 찾는다.쉽게 이해를 위해 1 부터 100까지 데이터가 들어있는 리스트가 있다고 하자. 이 리스트는 정렬되어 있다. 즉 1부터 100까지 순차적으로 데이터가 들어있다고 하자이제 우리는 이 리스트에서 25라는 데이터를 찾아보겠다.num_list = [i for i in range(1, 101)]def binary_search(start, end,..
크래프톤 정글 9일 차 TIL 및 회고를 진행합니다.9일 차 주요 이슈 : 알고리즘 기초 특강정글 생존 9일 차 알고리즘 1주 차 진행 중 알고리즘 기초 특강을 진행해 주셨다. 코치님이 앞에 서서 문제를 풀고 풀이를 설명하는 것은 아니었다. 다만 알고리즘이 왜 중요한지 그중 특히 정글러들이 모두 어려워하는 재귀에 대해서 30분가량 짧게 설명해 주셨다. 그리고 이후. 오늘의 알고리즘 풀이는 주로 재귀와 관련된 문제를 진행했다.재귀에 대한 이모저모재귀를 실무에서 개발자가 직접 코딩하는 경우가 있는가? - 물론 직접 재귀를 사용해 구현을 하는 경우는 없을 수 있다. 대신 우리가 자주 사용하는 정렬이나 함수 중에 이미 재귀를 이용해 구현이 되어 있는 것들이 많다. (이진트리, BSP, 퀵정렬, 병합정렬)재귀는 ..