그래프는 여러 개의 점(노드 또는 정점)들이 선으로 연결된 구조를 나타내는 수학적인 개념입니다. 그래프는 다양한 현실 세계의 문제를 모델링하고 분석하는 데 사용됩니다.노드(Node) 또는 정점(Vertex): 그래프에서 하나의 점을 나타냅니다. 노드는 데이터를 저장하는
큰문제를 작은 문제로 분할하고, 작은 문제의 해결 방법을 결합하여 큰 문제를 해결하는 알고리즘이 알고리즘의 순서는 아래와 같다.분할정복: 부분 문제를 재귀적으로 해결결합종류로는 퀵정렬, 병합정렬, 이진 검색 등등이 있으며특징으로는 재귀적인 구조를 가지기 때문에 구현 방
퀵정렬은 분할 정보 알고리즘의 한 종류이며 피벗(pivot)을 지정해서 그 기준으로 정렬하는것정렬한 후에 분할된 배열에 대해 다시 한번 피벗을 지정해서 정렬하는 것을 반복한다(재귀적 함수 호출)피벗을 어떻게 선택하느냐에 따라 실행시간이 달라질수 있음(보통 처음, 마지막
분할 정복 알고리즘의 한 종류로서 중간값을 기준으로 두개로 배열을 나누고 각 배열의 첫번째 원소부터 비교하여 새로운 배열(정렬된 배열)에 추가하는 정렬 알고리즘. 배열을 쪼갠후 또 내부적으로 같은 과정을 반복한다(재귀적 함수 호출)방법: 중간값을 기준으로 두개로 나누고
버블 정렬은 인접한 두 개의 요소를 비교하고 필요에 따라 서로 위치를 교환하는 방식으로 동작합니다. 주어진 배열의 길이를 구합니다.배열의 첫 번째 요소부터 시작하여 인접한 두 요소를 비교합니다. 현재 요소(arri)가 다음 요소(arri+1)보다 크다면, 두 요소의 위
DP, 즉 다이나믹 프로그래밍(또는 동적 계획법)은 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘 설계 기법입니다.🔎 알고리즘 설계 기법과 알고리즘 기법1\. 알고리즘 기법문제를 해결하기 위해 사용되는 절차적인 방법 또는 계획(EX, 정렬 알고리즘, 검
문제 링크push slice concat구조분해할당 sortfor-in 루프는 배열의 인덱스뿐만 아니라, 해당 객체의 모든 프로퍼티를 순회하므로, 배열을 순회할 때는 for-in 루프보다 for-of 루프를 사용하는 것이 좋습니다. for-of 루프는 배열의 요소를 순
문제링크startsWith join
문제링크이중 for문 대신 while문 쓰기
문제 링크string.searchstring.matchstring.substringstring.toLowerCasestring.localCompareparseInt
머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정모든 범위의 코딩테스트 문제 유형을 포함하는 개념풀이를 떠올리는 것은 쉽지만, 소스코드로 옮기기 어려운 문제피지컬을 요구하는 문제알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제특정 소수점 자리까지 출력해야 하는 문제문
머리속 알고리즘을 코드로 구현하는 것을 의미합니다. 넓은 의미로 모든 코딩테스트 문제를 구현이라고 할 수도 있습니다.구현은 피지컬 싸움이라고도 하는데, 이때의 피지컬은 사용하는 1. 언어의 문법에 얼마나 능숙하느냐, 2. 코드 작성 속도가 얼마나 빠르냐에 따라 갈린다고
PREP은 알고리즘 문제를 풀기 위해 접근 방법을 구체화하고 계획을 세우는 과정을 의미합니다. PREP는 Problem, Requirements, Examples, Plan의 약어로 각각 다음과 같은 의미를 가지고 있습니다:Problem (문제 이해):문제의 요구사항과
DFS란 깊이 우선 탐색 알고리즘을 말한다.
외계인 사전 문제 풀이array some 활용하기array 내부의 string 합치기 join 함수문자열 정렬하기 \- 문자열 배열로 만들기 ...s정렬하기 ...s.sort문자열로 만들기 ...s.sort.join('')
한글자만 다른 단어들로 그래프를 만들어야 한다.한글자만 다른지 알기 위해서 해당 함수를 만들어야 한다.한글자만 같은 word를 통해 그래프 만들기깊이 우선 탐색을 통해 최솟값 찾기글자 수는 같으니까 인덱스로 접근해서 판단하기최종 풀이 링크
반씩 쪼개는 탐색정렬 된후에 탐색1억이면 30번 정도 탐색하면 됨순차탐색이 O(N)이라면 이진탐색은 O(logN)이다.만약 범위가 억이 넘어가는게 존재할 경우데이터 정렬 뒤에 다수의 쿼리를 날려야 할 경우