지문 읽기 및 컴퓨터적 사고문제를 해석하고 재정의한 후 문제를 풀기 위한 작은 단계들로 쪼개기요구사항(복잡도) 분석이 문제를 주어진 요건에 맞게 풀기 위해서는 어느 정도의 성능이 필요한지 판단문제 해결을 위한 아이디어 찾기소스코드 설계 및 코딩문제의 풀이 방향이 나왔다
현재 상황에서 지금 당장 좋은 것만 고르는 방법사전에 암기하고 있지 않아도 창의력(아이디어)으로 풀 수 있을 가능성이 높은 유형일반적인 상황에서는 최적의 해를 보장하지 못하기 때문에, 정당성 분석(단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 낼 수 있
탐색: 많은 양의 데이터 중 원하는 데이터를 찾는 과정DFS, BFS: 대표적인 그래프 탐색 알고리즘으로, 코딩 테스트에 매우 자주 나오는 유형먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조입구와 출구가 동일한 형태로 스택을 시각화할 수 있음ex.)비유:
정렬: 데이터를 특정한 기준에 따라 순서대로 나열하는 것일반적으로 퀵 정렬보다 느리지만 최악의 경우에도 O(NlogN)의 시간복잡도 보장처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입선택 정렬보다 구현 난이도가 높지만 일반적으로 시간복잡도 측면에서 보다 효율적첫
리스트 안에 있는 특정 데이터를 찾기 위해 앞에서부터 순회하며 데이터를 하나씩 확인하는 방법정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법시작점, 끝점, 중간점을 이용하여 탐색 범위를 설정정렬되어 있는 리스트에서만 사용 가능시간 복잡도는 O
메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이미 계산된 결과(작은 문제)는 별도의 메모리 영역(리스트나 딕셔너리로, 일종의 캐시 역할)에 저장하여 다시 계산하지 않도록 함한 번 해결한 문제의 답을 메모리에 저장하여 같은 문제를 중복해서 풀지
가장 짧은 경로를 찾는 알고리즘ex) 한 지점 ~ 다른 한 지점까지의 최단 경로 / 한 지점 ~ 다른 모든 지점까지의 최단 경로 / 모든 지점 ~ 다른 모든 지점까지의 최단 경로각 지점은 그래프에서 노드로 표현(국가, 집 등 여러 것에 빗대어짐) 지점 간 연결된 도로는
서로소 집합 알고리즘 서로소 집합(Disjoint Sets) 공통 원소가 없는 두 집합 서로소 집합 자료구조(Union-Find) 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조(두 집합이 서로소 관계인지 판별하기 위한 자료구조) 두 종류의 연
모든 약수는 약수 중 가운데 약수를 기준으로 대칭을 이루므로, 약수를 찾을 때는 가운데 약수(제곱근)까지만 확인하면 됨n 미만의 모든 소수 찾기에라토스테네스의 체 알고리즘 활용시간 복잡도는 O(NloglogN)소수인지 여부를 저장할 리스트가 필요하므로 메모리가 많이 필
요건에 맞는 하나의 모듈 개발모듈의 시간 복잡도, 공간 복잡도 분석완성도 높은 하나의 프로그램 개발모듈을 적절히 조합하는 능력 필요클라이언트 - 서버요청(Request)과 응답(Response)을 주고받음서버 = 서비스 제공자웹 상에서 데이터를 주고받기 위한 통신 규약
가계도와 같은 계층적인 구조를 표현할 때 사용할 수 있는 알고리즘트리루트 노드 부모가 없는 최상위 노드단말 노드 자식이 없는 노드크기 트리에 포함된 모든 노드의 개수깊이 루트 노드로부터의 거리높이 깊이 중 최대값차수 각 노드에 직접적으로(간선 하나로) 연결되어