코딩테스트 시간 복잡도 계산
알고리즘 풀 때 시간 복잡도 고려해서 어떤 알고리즘 쓸 지
완전탐색(브루트포스)
이진탐색 사용하는 문제를 접근하는 방법, 어떤 문제가 이진탐색을 사용해야 하는지 생각
그리디 알고리즘 문제 유형 분석, 마인드셋 정리
DFS 문제 만났을 때 해야할 생각 정리
순열 문제를 DFS로 풀 때
DFS - 조합 활용
DFS가 아닌 라이브러리를 활용하여 순열, 조합 구현
DFS + 가중치 방향 그래프 - 경로 탐색 (중복을 확인하면서 뻗어나감)
DFS - 경로 가짓 수
BFS 문제 유형, 문제풀 때 마인드
인접행렬, 인접리스트 상황에 따라 판단.
BFS - 연결 요소 갯수 구하기
문제 유형
dp 알아보기
dp - 최장 부분 증가 수열
dp - 냅색 알고리즘 (짐싸기 문제 유형)
DFS + DP
dp - 냅색 알고리즘 활용 문제들 풀어보며 익히기
플로이드 워셜 알고리즘
위상정렬 유형
다익스트라 알고리즘 문제 유형
유니온 파인드 문제 유형
특정 문자 찾기
문자, 특정한 값의 개수 구하기
좌표 문제 인접하면 맵 2배 키우기.
디버깅 (메모장 활용 하라는 것이 아니라 기능 별로 나눠서 작성 후에 제대로 동작하는지 확인)문제 도식화쉬운 문제 2문제 + 보통 1문제 꾸준히 풀자.솔브닥에서 문제 검색을 \`자주 나오는 로직은 외우자예를 들어, 배열 대칭 문제 같은거따로 정리하자
2차원 리스트 복사에서 deepcopy 쓰지말자.매우 간단하다시간도 deepcopy 모듈을 사용하는 것보다 빠르다slicing을 이용해서 2차원 복붙하자. (1차원도 마찬가지)
😎 투 포인터 투 포인터 알고리즘이란, 리스트에 순차적으로 접근해야 할 때 두개의 점의 위치를 기록하면서 처리하는 알고리즘을 의미한다. 흔히 2,3,4,5,6,7번 학생을 지목해야 할 때 간단히 2번부터 7번까지의 학생이라고 부르곤 한다. 리스트에 담긴 데이터에
에라토스테네스의 체 알고리즘
🎃 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘.배열이나 리스트의 요소의 일정 범위의 값을 비교할 때 사용하면 매우 유용하다.해당 윈도우에 포함된 데이터의 특정 속성(합, 최대값, 최소값 등) 빠르게 계산할 때 사용.문
크루스칼 알고리즘(MST)
차분배열, 누적합을 활용한 카운팅할 때 매우 유용하게 쓸 수 있음
Lower bound & Upper bound Lower bound와 Upper bound는 이진 탐색의 변형으로, 정렬된 배열에서 특정값을 효율적으로 찾는데 사용된다. -> 즉, 경계값을 찾는 알고리즘이다. 이진탐색을 기반으로 하기 때문에 정렬되어 있어야 한다. 이
특정 구간 개수 카우팅 쉽게 해주는 알고리즘